double型数据在四舍五入时的异常现象

文章描述了一个编程中的现象,即在四舍五入double类型的数值时,结果可能会舍去最后一位小数。通过将数据类型改为float,问题得以解决,但原理尚不清楚。解决这类问题通常依赖于理解浮点数精度局限性并适时调整数据类型。
摘要由CSDN通过智能技术生成

这是随手写一道题时发现的现象,题目如下

这道题非常基础,轻松得到以下代码

我们测试样例会发现错误

80.845四舍五入到两位小数应当是80.85,而输出却是80.84,实际上没有进行四舍五入,而是舍掉了最后一位小数。

更改数据类型为float型,发现程序运行正常。

查阅资料发现这可能就是double类型的问题了,也不算bug,类似于0.5会变成0.49999999的问题一样,计算机解析double类型时实际数值和显示不一样。

具体原理仍不明确,下次遇见时转变数据类型即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值