User 10734264 Ответов: 1

Проблема в javascript, если условие проверки суммы .


У меня есть следующий код javascript
когда я проверяю значение
if (amountValue >= memberDueValue)

она переходит в другое состояние, но должны быть в состоянии, если значения
amountValue 
=
220000 

memberDueValue
=
50023.14

если
amountValue 
>
memberDueValue
и первое значение
amountValue 
меньше, чем первое значение
memberDueValue
.
он всегда идет к другому.

Что я уже пробовал:

var memberDue = document.getElementById("lblTotalDueAmount_" + typeId + "_" + memberId).value;
   var savingBalance = document.getElementById("lblMemberSavingAmount_" + typeId + "_" + memberId).value
   var amount = document.getElementById("lblMemberTotal_" + typeId + "_" + memberId).value;

   var memberDueValue = parseFloat(memberDue).toFixed(2);
   var savingBalanceValue = parseFloat(savingBalance).toFixed(2);
   var amountValue = parseFloat(amount).toFixed(2);

   alert(amountValue + ", " + memberDueValue + ", " + (memberDueValue - amountValue).toFixed(2));

   if (amountValue >= memberDueValue) {
       document.getElementById("lblMemberDepositAmount_" + typeId + "_" + memberId).value = (amountValue - memberDueValue).toFixed(2);
   }
   else {
       var diff = (memberDueValue - amountValue).toFixed(2);
       if (diff > savingBalanceValue) {
           document.getElementById("lblMemberWithdrawlAmount_" + typeId + "_" + memberId).value = savingBalanceValue;
       }
       else {
           document.getElementById("lblMemberWithdrawlAmount_" + typeId + "_" + memberId).value = (memberDueValue - amountValue).toFixed(2);
       }
   }

Karthik_Mahalingam

проверили, все работает нормально
var amountValue =220000
ВАР memberDueValue = 50023.14
amountValue >= memberDueValue / / true

1 Ответов

Рейтинг:
8

Member 7870345

Привет:
Я думаю, что проблема в линиях:

var savingBalanceValue = parseFloat(savingBalance).toFixed(2);
var amountValue = parseFloat(amount).toFixed(2);

если они будут:
var savingBalanceValue = parseFloat(savingBalance);
var amountValue = parseFloat(amount);

логика будет работать правильно.


Когда вы используете
.toFixed(2)

результатом этого утверждения является то, что:
savingBalanceValue="220000";<br />
amountValue="50023.14"

потому что .toFixed преобразует результат в строку, а затем сравнение в if - это не сравнение между числами, а сравнение между строками и затем
if (amountValue >= memberDueValue)

является
if ("220000" >= "50023.14")

это относится к другому условию.


Karthik_Mahalingam

хороший улов, +5

[no name]

Спасибо, что это работает.