呵呵呵,回答的很有意思啊
其实这是一个精度的问题,浮点数的精度位是有限的,其只能保证一定程度的数字是有意义的,你可以尝试改变变量的赋值,比如:
float f = 12345.12345
float f = 123456.123
float f = 1234.1234
等等,用同样的方式输出,你就会发现一个规律,除了你明确的赋值外,还会输出一些额外的数(输出小数点要求的位数大于实际有效位数的情况下)。从理论上讲那些多出的位应该是全用0来填补,但是实际上这是无法做到的,这是由于浮点数在内存中的存储机制造成的,具体的原因不应该是你现在的能力应该讨论的,你只要记住,小数点后超过6位的数字都是没有意义的,这是一些随机值,如你上面的例子,小数点后只有3位有效数字,另外的三位是无效数字,那一个1是一个随机的值,没有任何意义,在浮点数变量的使用过程中要时刻记住他的有效位数。
记住你今天提的这个问题,任何程序设计语言都存在这个问题,不要尝试使用浮点数做太精确的时,会的到无法预测的结果。