关于本题如何卡double的一点看法 | 疑似发现C/C++输出的一点小bug
查看原帖
关于本题如何卡double的一点看法 | 疑似发现C/C++输出的一点小bug
387009
wangbinfeng楼主2024/9/5 21:26

RT,我写作业划水时测试的,可能测错,如果测错的话见谅。


首先,很多初学者都质疑为什么本题为什么不能用double,一般都直接回答看题目。我认为这种行为及其的误人子弟且不负责任(我也这么干过,向被我误导的同学道歉)

其次,不知道现在讨论区传的输入数据是怎么来的。我利用RE的返回值信息测试出 #10的输入为-12.6505,并不存在卡float精度的问题。话说,为了让OIer强制使用float而故意卡掉float精度的做法本来就很滑稽,不清楚为什么那么多人相信了

下面就引出了本帖最关键的问题:

printf和cout貌似对负数的四舍五入均存在一些 bug

由于我没时间具体测试了,所以发帖询问大家的看法。

放一下我的测试结果(printf和cout的结果相同): float:-12.651 double:-12.650

如果不是printf或cout的问题,那我个人猜想的结果可能与主流观点相反:本题不是卡掉了float的精度,而是卡掉了double的精度。

2024/9/5 21:26
加载中...