понедельник, 19 января 2009 г.

Несоответсвия функций NumberPrototype.toFixed (.NET сборка Microsoft.JScript) и Number.toFixed (MS IE JavaScript)

Очень странная штука обнаружилась при работе с функцией Number.toFixed при разработке под IE 7-ку (7.0.5730.13):
new Number(0.095).toFixed(1) это есть "0.1"
в то время как
new Number(0.094).toFixed(1) будет почему-то "0.0"
При этом, например:
new Number(0.195).toFixed(1) есть "0.2"
и
new Number(0.194).toFixed(1) есть "0.2"
Все это ещё интереснее становится, если выяснить, что в классе NumberPrototype сборки Microsoft.JScript фреймворка .NET всё грамотнее:
NumberPrototype.toFixed(0.095, 1) есть "0.1"
NumberPrototype.toFixed(0.094, 1) так же "0.1"
Явная бага с округлением, по которой, разумеется, никакой информации нет. Если кто видел что-нибудь подобное, отзовитесь, пожалуйста.

P.S. За правдой я пошел в MSDN. Может быть её узнаем...
P.P.S. Через сутки после поста на форуме MSDN - нуль реакции. Продолжил вопрошать в коммьюнити.