Почему C # не может вычислять точные значения математических функций

Почему C # не работает любые точные операции.

Math.Pow(Math.Sqrt(2.0),2) == 2.0000000000000004

Я знаю, как работают двойники, я знаю, откуда взялась ошибка округления, я знаю, что это почти правильное значение, и я знаю, что вы не можете хранить бесконечные числа в конечном двойном. Но почему нет способа, которым C # мог бы вычислить его точно, в то время как мой калькулятор может это сделать.

Править

Дело не в моем калькуляторе, я просто привел пример:

http: // www .wolframalpha.com / input /? i = Sqrt% 282. 00000000000000000000000000000000000000000000000000000000000000000000000000001% 29% 5E2

Ура

9
задан Yaroslav Bulatov 7 January 2011 в 20:49
поделиться