C语言float问题,位数问题和四舍五入?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言float问题,位数问题和四舍五入?相关的知识,希望对你有一定的参考价值。
请问一下大佬
float a;
scanf("%f",&a);
printf("%f",a);
若输入1.325
则输出1.325000
1、在不知道用户输入的小数位是几位的情况下,如何去掉后面的0
2、%.2f(精确到2位小数)后会自动四舍五入,如何实现小数值不变,不四舍五入
c语言中float型的精度问题
浮点数不是连续值,有一定精度,特点是动态范围大。它还没有int的精度高,因为int是32位表示,float只有23位有效值,其他是符号位和指数。既然计算得不到12.10,就是浮点数不能精确表示12.10。
c
=
12.099998精度也很高了,只差0.000002,差值很小了 参考技术A 只是范围,而不是一定要小数点后38位
float的精度在编程中是可以控制的例如
printf("%0.2f",x);
输出X的值,并保留小数点后2位。
当然,也可以是n位 参考技术B 3.4*10^38是说他可以达到的上限是这么多。谁说精度是38,float精度是小数点后6-7位
补充:嗯我错了,应该是有效数字不是小数点后 参考技术C 取值范围
3.4*10^38
有效数字只有
7
到
8
个。
例如:
float
a=123.456789;
float
b=123456789.0;
printf("%20.8f\n",a);
printf("%20.8f",b);
打出:
123.45678711
--
后3位不精确
123456792.00000000
--
前7位精确,92
开始不对了。
以上是关于C语言float问题,位数问题和四舍五入?的主要内容,如果未能解决你的问题,请参考以下文章