Почему одна переменная больше, чем другая в этом коде?
Почему rfd_total > max_rfd
правда? Я не понимаю как rfd_total
может быть больше чем max_rfd
в следующем коде:
max_rfd = parseFloat(jQuery('#mx-rfd_'+order_id).val()).toFixed(2);
rfd_total = parseFloat(items_total+tax_total+shipping+allowances*1).toFixed(2);
if( rfd_total > max_rfd)
{ if(isNaN(rfd_total)) alert('rfd_total isNaN'); // not triggered
if(isNaN(max_rfd)) alert('max_rfd isNaN'); // not triggered
alert(rfd_total); // alerts 51.16
alert(max_rfd); // alerts 102.32
return false;
}
1 ответ
Решение
Это потому что rfd_total
max_rfd
Строки
Вы заметите, что "51.16" > "102.32"
возвращает истину.
toFixed()
возвращает строку
Вам нужно будет привести ваши переменные к числам, что вы можете узнать, как это сделать с помощью быстрого поиска.
Или вы можете сохранить свой код в чистоте и сделать это правильно, используя такую функцию, как эта
function decimalRoundTo(n, decimalPlaces) {
var d = Math.pow(10, decimalPlaces);
return Math.round(n*d)/d;
}