这是随手写一道题时发现的现象,题目如下
这道题非常基础,轻松得到以下代码
我们测试样例会发现错误
80.845四舍五入到两位小数应当是80.85,而输出却是80.84,实际上没有进行四舍五入,而是舍掉了最后一位小数。
更改数据类型为float型,发现程序运行正常。
查阅资料发现这可能就是double类型的问题了,也不算bug,类似于0.5会变成0.49999999的问题一样,计算机解析double类型时实际数值和显示不一样。
具体原理仍不明确,下次遇见时转变数据类型即可。
这是随手写一道题时发现的现象,题目如下
这道题非常基础,轻松得到以下代码
我们测试样例会发现错误
80.845四舍五入到两位小数应当是80.85,而输出却是80.84,实际上没有进行四舍五入,而是舍掉了最后一位小数。
更改数据类型为float型,发现程序运行正常。
查阅资料发现这可能就是double类型的问题了,也不算bug,类似于0.5会变成0.49999999的问题一样,计算机解析double类型时实际数值和显示不一样。
具体原理仍不明确,下次遇见时转变数据类型即可。