4

私のMS Excelでは、データ型ごとに丸め操作の動作が異なります。

シングルの場合:

? Application.Round(6.575!, 2)
 6.57 

ダブルの場合:

? Application.Round(6.575#, 2)
 6.58 

理由を知っている人はいますか?


更新: @paxdiabloは優れた回答を提供したので、ここで簡単に再現します。

単精度では、6.575 はバイナリ表現で 0 10000001 101001 0011 0011 0011 0011、または 6.57499980926513671875 です。これは 6.57 に丸められます

倍精度ではさらに 0011 が追加され、それらの重みは数値を 6.575 (6.57500000000000017763568394003) よりわずかに大きくするのに十分なため、6.58 に丸められます。

4

1 に答える 1