c语言中浮点数四舍五入 。 保留一个浮点数小数点后的6位,第3位要四舍五入。如 1.1234.567到1234.570000 C语言,一个浮点数,怎么四舍五入保留到个位数

C\u8bed\u8a00\u4e2d\u5982\u4f55\u5bf9\u6d6e\u70b9\u6570\u8fdb\u884c\u56db\u820d\u4e94\u5165\uff1f

C\u8bed\u8a00\u4e2d\u5bf9\u4e8e\u6d6e\u70b9\u6570\u8f93\u51fa\u7684\u56db\u820d\u4e94\u5165\u662f\u81ea\u52a8\u8fdb\u884c\u7684\u3002\u5728\u6d6e\u70b9\u6570\u7684\u6709\u6548\u4f4d\u6570\u8303\u56f4\u5185\uff0c\u5f53\u8981\u6c42\u4fdd\u7559\u5c0f\u6570\u70b9\u540en\u4f4d\u65f6\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u6839\u636e\u7b2cn+1\u7684\u503c\u81ea\u52a8\u8fdb\u884c\u56db\u820d\u4e94\u5165\u64cd\u4f5c\u3002\u4ee5\u4e0b\u4ee3\u7801\u53ef\u4ee5\u9a8c\u8bc1\uff1a
//#include "stdafx.h"//If the vc++6.0, with this line.#include "stdio.h"int main(void){ double pi=3.141592653589793; printf("%.15f\n",pi); printf("%.3f\n",pi);//\u4fdd\u75593\u4f4d\u5c0f\u6570,\u56e0\u7b2c4\u4f4d\u662f5\u800c\u8fdb\u4f4d printf("%.5f\n",pi);//\u4fdd\u75595\u4f4d\u5c0f\u6570,\u56e0\u7b2c6\u4f4d\u662f2\u800c\u820d\u5f03 return 0;}\u8f93\u51fa\u662f\uff1a
3.141592653589793
3.142
3.14159

int Function\uff08float yournum\uff09
{
int temp= yournum*10\uff1b
int floatPart=temp%10;
int intPart=temp/10;
if(floatPart>=5)
{
return intPart+1;
}
return intPart;
}

意思是第3位之后的数都舍弃吗?

可以这样,

#include <stdio.h>
int main()
{
double d1 = 1234.567;
double d2 = d1 - (int)d1; // 求出小数部分
int i = d2 * 1000; // 取出小数后3位
if (i%10 >=5 )
{
i -= i%10;
i += 10; // 四舍五入
}
d1 = (int)d1 + (double)i / 1000;
printf("d1 = %lf
", d1);
return 0;
}


利用整数取整后自动截断小数的办法可以实现保留小数,比如:12344.567要保留两位小数并在第3位上进行四舍五入:double x=1234.567; int xx; x*=100; x+=0.5; xx=(int)x; x=(double)xx/100;

扩展阅读:c语言 浮点数 乘 速度 ... c语言round函数四舍五入 ... c语言浮点数转整数 ... c语言浮点型四舍五入 ... c语言浮点数向零舍入 ... c++四舍五入 ... c语言遵循四舍五入吗 ... c语言float四舍五入 ... 给一个浮点数做到四舍五入 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网