Вы можете написать kludge с помощью Math.round, но это обнулит центы (не уверен, что это применимо в вашем примере, похоже, что это возможно). То, что вы можете хотеть, это исправить:
alert((102.000000004).toFixed(2)); // alerts "102.00"
Это не округляется в IE, но из того, что я могу сказать, это не будет иметь значения в вашем случае.
(документы: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number/toFixed, http://www.codingforums.com/showthread.php?t=102421, http://msdn.microsoft.com/en-us/library/sstyff0z.aspx)
Редактировать: намеревался добавить это в комментарии, но уценка там не работает? Все еще привыкаю к ТАК ...
Во всяком случае, вы также можете использовать Kludge с Math.round, если вы предпочитаете:
alert(Math.round(val * 100) / 100);
Который может по-прежнему отображать глупые проблемы с плавающей точкой, для которых вы могли бы использовать другое .toFixed (и теперь вы на 100% уверены, что нет оставшихся десятичных разрядов, которые вы не округлите должным образом):
alert((Math.round(val * 100) / 100).toFixed(2));
Редактировать: интегрировать:
Добавьте это вверху вашего блока скриптов:
function roundNicely(val) {
return (Math.round(val * 100) / 100).toFixed(2);
}
Затем в ваших оповещениях оберните значение prodBasett
в вызов функции: roundNicely(prodBasett)
(и аналогично для других оповещений)
Имеет ли это смысл?