У меня есть 2 числа, которые я хочу сравнить entertedAmount = 65.00 и maxPrice = 5000.00 в моей функции JavaScript.
var entertedAmount = parseFloat(textbox.value).toFixed(2);
var maxPrice = parseFloat(passedMaxPrice).toFixed(2);
if (entertedAmount <= maxPrice) {
var strSplit = textbox.id;
var res = strSplit.split("_");
var rownumber = res[2].substring(res[2].length, 3) - 1;
arrRows[rownumber] = removeSpaces(textbox.value);
sumArray();
isSearchButtonPressed = false;
} else {
alert('Please enter a price less than R' + passedMaxPrice);
textbox.value = 0;
}
если значение enterAmount меньше, чем maxPrice, он должен ввести оператор if, но теперь он не вводит оператор if, он идет в оператор ELSE
Проблема исходит от вашей функции Tofixed, которая преобразует десятичное число, полученное с помощью parseFloat, в строку. Таким образом, вы должны окружить его с помощью Number().
var textbox = document.getElementById('textbox');
var entertedAmount = Number(parseFloat(textbox.value).toFixed(2));
var maxPrice = Number(parseFloat(5000).toFixed(2));
if (entertedAmount <= maxPrice) {
console.log(entertedAmount + " less than "+ maxPrice );
} else {
alert('Please enter a price less than R');
textbox.value = 0;
}
<input id="textbox" type="number" value="522.5886"/>
toFixed возвращает строку, поэтому вы должны проанализировать эту строку в float
if(parseFloat(entertedAmount) <= parseFloat(maxPrice)){
} else{
}
Надеюсь, что это работает для вас.
if(Number(entertedAmount) <= Number(maxPrice)){
}else{
}
toFixed
возвращает строку . Вы, вероятно, хотите вместо этого округлить, поэтому у вас есть номер.