意外的Math.Round结果

时间:2015-11-09 11:19:35

标签: c#

甚至.5结果向下舍入,奇数.5结果向上舍入。

(0) "0.5 rounded to 0"
(1) "1.5 rounded to 2"
(2) "2.5 rounded to 2"
(3) "3.5 rounded to 4"
(4) "4.5 rounded to 4"
(5) "5.5 rounded to 6"
(6) "6.5 rounded to 6"
(7) "7.5 rounded to 8"
(8) "8.5 rounded to 8"
(9) "9.5 rounded to 10"

产生这些值的循环是这一个(this是我计算unix时间戳的方式):

foreach (DateTime time in timeList) {
    var unroundedIndex = (ToUnixTimestamp(time) - firstUnixTimestamp) / timestepInSeconds;
    var roundedIndex = Math.Round(unroundedIndex);
}

timeList中的日期应该是均匀分布的,但老实说我不能100%确定。

使用调试器,我无法看到:

之间的任何差异
  • " 1.5四舍五入到2"
  • " 2.5舍入为2"

...或者在每个时间的毫秒之间等等。也就是说:一切看起来都是有序的(虽然它可能不是,因为否则它不会那样)。

有什么想法吗?感谢..

0 个答案:

没有答案