C# banker's rounding error

double a = 18.565
return Math.Round(a,2)

.. возвращает 18,57.
Для каждого другого числа, которое я пробовал, округление банкиров работало, как ожидалось, например Math.Round (2.565,2) вернул 2.56.

Есть подсказка, почему и когда это происходит? Это ошибка или я что-то упускаю из-за банковского округления?

Спасибо ..

8
задан Charles 7 September 2011 в 00:31
поделиться