C++显示数值问题

来源:百度知道 编辑:UC知道 时间:2024/06/10 10:08:06
#include <iostream.h>

int main(){
double b,f;
cin >> b >> f;

cout << b << endl;
cout << f << endl;
system("pause");
}

输入:
b = 12312765765734534534.0;
f = 0.124237658765344564553;
输出:
1.23128e+019
0.124238
目标输出:
12312765765734534534
0.124237658765344564553

输入:
b = 123456789.0;
f = 0.123456789;
输出:
1.23457e+008
0.123457
目标输出:
123456789
0.123456789

目标是跟据输入的数字不同长度输出完整的数字,
uwinb:
如何可以完整地保存完整的数值(计算前后)及完整地输出?

xiudewu:
setprecision 只可以显示出十七个位,如果数值超过就会变0

计算机的类型位数没有那么长的,太长的大数可以用数组来存储。大数处理在网上到处可以搜到..
但如果要显示123456789.0和
0.123456789
使用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6。
如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。setiosflags(ios::fixed)是用定点方式表示实数。
如下:
b = 123456789.0;
f = 0.123456789;
输出:
123456789.0
0.123456789

#include <iostream.h>
#include <stdlib.h>
#include <iomanip.h>

int main(){
double b,f;
cin >> b >> f;
cout << setiosflags(ios::fixed) << setprecision(1) <<b << endl;
cout << setiosflags(ios::fixed) << setprecision(9) << f << endl;
system("pause");
return 0;
}

#include <iostream>
#include <string>

using namespace std;

int main()
{
string s;
while(cin>>s)
{
cout<<s<<endl;
}
return 0;<