yhkn.net
当前位置:首页 >> C语言如何实现输出浮点数小数点两位(四舍五入法)... >>

C语言如何实现输出浮点数小数点两位(四舍五入法)...

可以通过sprintf函数实现数字四舍五入转字符串,通过处理字符串,实现所需功能,具体代码, #include int main(int argc, char *argv[]) { char buffer[40];//存储float数据 float fnum=12.396;//待测试数据 sprintf(buffer,"%.2f",fnum);//四舍...

float x = 0; int a= 0; int b = 0; scanf("%f",&x); a = (int(x*10))%10; b = (int(x*100))%10; a和b就是你输入的小数的小数点后两位数字

不相同,方法1的x已经不是原来的x了,方法2的x没有变。 顺便说一句,如果x特别大(超过int的范围),方法一会发生溢出。可以用x = floor(x * 100.0 + 0.5)/100.0,floor函数在里,返回小于或等于x的最大整数。

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

加0.5强制转int。这是取到整数的方法。其他位数道理差不多。2位的话你先乘100,加0.5强制转int,然后除回100。注意类型转换。除100要转double。

因为float 是单精度实数,精确位数只有6-7位。 你用double 就可以了。 还有一点。.6是不需要的,小数默认输出就是6位,加.6只是多此一举

可以写个函数 int sheru(double i){ double a = i - (int) i ;//求此浮点数的小数部分 if(a < 0.5) return int(i);//如果小数部分小于0.5.则返回整数部分.double强制转换int会去掉小数位 else return int(i)+1;//反之,,加一 }

#include int main() { double d; printf("input d: " ); scanf("%lf", &d ); printf("%.1lf\n", d ); //输出保留一位小数,自动四舍五入 return 0; }

printf("%.3f",变量); 试试看,貌似是这样……

%.3f 的意思是输入小数点之前的三位数,比如说: 12.1234 会输出:12.123, 0.1236会输出:0.123 。之后的数字会被直接无语! 你可以用下面的方法(不过这个方法只适合正数,负数就不行了) float a = 1.1235; //保留到小数点后三位 float b =(i...

网站首页 | 网站地图
All rights reserved Powered by www.yhkn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com