C++ 如何处理小数位按指定长度输出?

来源:百度知道 编辑:UC知道 时间:2024/05/26 01:21:06
有一个double数,比如为a,把a只保留4位小数,然后把a付值给b,我要用的是b,并不是把b输出,也就是说,我想在后面的程序中把b做为一个常量使用。

最好是给出处理的代码。

有没有函数可以实现,就象vb中的round函数那样?

谢谢。

b=((int)(a*10000))/10000;
按这个思路写个小函数

double myRound(double a,int digi)
{
int mult=10^digi;
return (double)((int)(a*mult))/mult;
}

一般四舍五入可以用int(变量+0.5)来实现.
所以保留四位小数可以采用如下方法:
1.原数乘以10000.
2.四舍五入.
3.结果除以10000
即b=int(a*10000+0.5)/10000.0

头文件iomanip中包含大量用于控制输出格式的函数。
#include<iomanip>
cout<<setw(8); /*设置字符宽度为8*/
cout<<setprecision(4)/*设置浮点数的精度为4*/
cout<<fixed /*固定输出小数的宽度*/

合起来写就是
cout<<fixed<<setprecision(4)<<setw(8);

fixed和setprecision只需设置一次,则整个流将保持所指定的格式,但setw必须在每次输出时都设定一次。

const double change(double a)
{
return (a*power(10,4)\1*power(10,4));
}

const double b=change(a);

//power()是库函数,你可以自己编一个密次计算的。
//整除1,就是要舍去小数。

C++ 如何处理小数位按指定长度输出? 求助C语言高手:很长的小数位怎么处理?? C语言中如何将变量123.4的个位、十位、百位、小数位分别取出来 计算 22 除以 7 的值,要求精确到指定的小数位,比如精确到 100 位。 用 C 或 Pascal 语法实现。 “rundll 加载c:windows\system32\supdata2.dll时出错,找不到指定模块。”如何处理 EXCEL中如何控制数据的小数位 加载:C:/WINDOWS/system32/yuxx-c.dll时出错找不到指定模块是怎么回事,如何处理。 加载C:/Windows/system32/winsys16_070109.dll时出错 找不到指定的模块,是怎么回事,如何处理? 如何处理电脑开机时出现加载C:\PROGRA~1\7.dll出错,找不到指定的模块. 加载c:\windws\system\av1cap.dll时出错找不到指定的模块如何处理?