计算机是以二进制存贮数据的,精度越大表示的数据越精确,换句话说是不可能表示完所有的数据,必然回存在一点误差。可以用模/数转换的列子来理解,数字量的位数越高,转换的精度越高,而位数越少,转换的精度也越低。
首先, 要先清楚常量是以什么形式的二进制存储在计算机中:
printf 中涉及的float浮点数据类型是以IEEE754标准转化为二进制代码的,
具体的可以找一下关于IEEE754标准的有关文章看看,这种代码主要用在数据信息采集上 不在c重点内,
主要记住IEEE754 不能精确存储就可以了!~
for(i=1;i<len;i++) 如果定义变量len = 15;len是浮点型的话,那么len有可能转化成14.9976 也有可能是15.0012
希望对你有帮助!~