在实际编程中,在遇到输出浮点数的时候,会发现无法按按预想输出,为什么?
这个涉及到浮点数精度问题。float在存储数据是保留八位有效数字。我看过一篇博客写的很好,分享给你http://www.cnblogs.com/antineutrino/p/4525224.htm我记得我以前看java的书里面写过一个问题,就是float x = 04.f ; double y = 0.4; 实际存储在x中的数据是1.40000000059604645,存储在y中的是1.40000000000000000000000(小数点保留16位),所以y中的值小于x中的值
可以使用输出控制符 比如print(“%4d“,a); 这时输出的a就是4位数
收先你要确定你的浮点位数 其次要看你的电脑位数 最后float在电脑中的储存方式是与其他存储不同的 比如 char和int的数据是可以相互替代的float却不行
这个要根据你的实际问题进行分析 具体的运算方式和要求的精度 你可以回帖我帮你继续看看
本质问题是浮点数要符合IEEE754规范。
再进一步,便是进制数问题。好比:十进制 无法精确表示出 1/3 ; 二进制 也无法精确表示出 1/10;
最后,更多详细可以去学习下计算机组成原理。
或者看下 http://blog.csdn.net/fanfan4569/article/details/52548976