发布网友 发布时间:2024-10-23 23:28
共4个回答
热心网友 时间:2024-11-08 05:12
你那不是四舍五入的问题,是编译器本身的问题.
在一些先进的编译器里面,这个值应该会等于1的.
在TC在编译,为了避免这种情况可以用笨一点的办法:
(1.0/3+0.000003)/3
加上0.000003应该不会对以后的数据引起太大的麻烦,这个值不应过大,也不能太小,0.000002或者0.000003都行吧.
--------------------------
基本上来说这个表达式是否等于1,跟编译器相关.
热心网友 时间:2024-11-08 05:12
这个问题我以前问过,
不一定等于1的,大多编译器是这样算的:
1.0/3=1.33333333333333333333;(它对超出精度部分舍去)
0.333333333333333333333333*3=0.9999999999999999999999999;
于是就不等于1了
但我用过的有一个编译器就能让这个结果为1.00000000000000000000,貌似是对超出精度的部分四舍五入了...
热心网友 时间:2024-11-08 05:13
1.0%(3*3)好像就会等于1吧
热心网友 时间:2024-11-08 05:13
似乎不行呀,