c语言中float精度问题

2024-11-23 03:54:30
推荐回答(5个)
回答1:

浮点数不是连续值,有一定精度,特点是动态范围大。它还没有int的精度高,因为int是32位表示,float只有23位有效值,其他是符号位和指数。
既然计算得不到12.10,就是浮点数不能精确表示12.10。 c = 12.099998精度也很高了,只差0.000002,差值很小了

回答2:

只是范围,而不是一定要小数点后38位
float的精度在编程中是可以控制的例如
printf("%0.2f",x);
输出X的值,并保留小数点后2位。
当然,也可以是n位

回答3:

3.4*10^38是说他可以达到的上限是这么多。谁说精度是38,float精度是小数点后6-7位
补充:嗯我错了,应该是有效数字不是小数点后

回答4:

%m.n // m为总位数,n为小数部分 ;此处可为%5.2

回答5:

可以进行四舍五入: int x; float a=121,b=10,c; c=a/b+0.005; x=c*100; c=x/100;