c语言中关于float类型的问题

来源:百度知道 编辑:UC知道 时间:2024/06/22 07:02:10
float a=1000.88;
printf("%f",a);
为什么输出的是"1000.880005"?
诸如这样的浮点型的变量为什么总是得到近似值呢?

记不太清楚啦。好像意思是说浮点可以精确7个有效数字。
而且小位数默认为6位小数。
你整数部分肯定不会出错的。
但是只有7个有效数字。所以后面的其他小数点会出错。各个电脑出错的值会有点不太相同。

这是float的精度要求,精度是6位小数,所有后面会自动补够6位小数。可以使用printf控制,如printf("%.3f")就是只保留3位小数。如果用cout输出则赋值多少,就输出多少,当然不超过6位。

float型数据并不是一个精确的数据类型,小数点后4位上是随机数。这是c语言的基本概念。

因为一个浮点型变量只能保证有效数位为7位,后面都是无意义的,因此并不准确地表示这个数!

你输入其他值也一样,只有前7个数是准确的,后面的shi什么都有可能;