Gremlin92
@Gremlin92
Целеустремленный

Почему js считает числа конкатенацией?

Вот например U=Ub+Ud1+Ud2+Ud3+Ud4+Ud5;
считает при входных единицах как 111111?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Расчет</title>
</head>
<body>
<input type="text" name="Bzp" id="Bzp" value="" disabled>БЗП<br>
<input type="text" name="Mrot" id="Mrot" value="12792">МРОТ<br>
<input type="text" name="Cnr" id="Cnr" value="">СНР<br>
<input type="text" name="Dn" id="Dn" value="">Дн<br>
<input type="text" name="Dvp" id="Dvp" value="">Двп<br>
<input type="text" name="Drk" id="Drk" value="">Дрк<br>
<input type="text" name="RO" id="RO" value="" disabled>РО<br>
<input type="text" name="SV" id="SV" value="" disabled>СВ<br>
<input type="text" name="Y" id="Y" value="">Y<br>
<input type="text" name="U" id="U" value="" disabled>U<br>

<input type="text" name="Ub" id="Ub" value="1">Uб<br>
<input type="text" name="Ud1" id="Ud1" value="">Uд1<br>
<input type="text" name="Ud2" id="Ud2" value="">Uд2<br>
<input type="text" name="Ud3" id="Ud3" value="">Uд3<br>
<input type="text" name="Ud4" id="Ud4" value="">Uд4<br>
<input type="text" name="Ud5" id="Ud5" value="">Uд5<br>





<input type="text" name="Si" id="Si" value="" disabled>Си<br>
<input type="text" name="Ki" id="Ki" value="">Ки<br>
<input type="text" name="KR" id="KR" value="" disabled>КР<br>
<input type="text" name="P" id="P"  value="" disabled>П<br>

<input type="text" name="Cr" id="Cr" value="">Ср<br>
<input type="text" name="Kr" id="Kr" value="">Кр<br>
<input type="text" name="Sp" id="Sp" value="">Сп<br>
<input type="text" name="Kp" id="Kp" value="">Кп<br>
<input type="text" name="Seo" id="Seo" value="">Сэо<br>
<input type="text" name="Keo" id="Keo" value="">Кэо<br>
<input type="text" name="Sm" id="Sm" value="">См<br>
<input type="text" name="Km" id="Km" value="">Км<br>
<input type="text" name="So" id="So" value="">Со<br>




<input type="text" name="Ctco" id="Ctco" value="" disabled>Стсо<br>

<input type="text" name="Sey" id="Sey" value="">Сеу<br>
<input type="text" name="Kzg" id="Kzg" value="">Кзж<br>


<input type="text" name="Czg" id="Czg" value="" disabled>Сзж<br>
<input type="text" name="Iinfl" id="Iinfl" value="">Iинфл<br>
<input type="text" name="Nds" id="Nds" value="">НДС<br>
<input type="text" name="result" id="result"  value="">Ответ<br>
<input type="button" name="button" value="Расчитать" onclick="calculate()"><br>
<script src="calculate.js"></script>
</body>
</html>

function calculate()
{
  var Si=0;//document.getElementById("Si").value;
  var Ki=document.getElementById("Ki").value;
  var KR=0;//document.getElementById("KR").value;
  var P=0;//document.getElementById("P").value;
  var Ctco=0;//document.getElementById("Ctco").value;

  var Cr=document.getElementById("Cr").value;
  var Kr=document.getElementById("Kr").value;
  var Sp=document.getElementById("Sp").value;
  var Kp=document.getElementById("Kp").value;
  var Seo=document.getElementById("Seo").value;
  var Keo=document.getElementById("Keo").value;
  var Sm=document.getElementById("Sm").value;
  var Km=document.getElementById("Km").value;
  var So=document.getElementById("So").value;
  Ctco = Cr*Kr+Sp*Kp+Seo*Keo+Sm*Km+So;



  var Czg=0;//document.getElementById("Czg").value;
  var Sey=document.getElementById("Sey").value;
  var Kzg=document.getElementById("Kzg").value;
  Czg = Sey*Kzg;

  var Iinfl=document.getElementById("Iinfl").value;
  var Nds=document.getElementById("Nds").value;
  var Bzp=0;//document.getElementById("Bzp").value;
  var Mrot=document.getElementById("Mrot").value;
  var Cnr=document.getElementById("Cnr").value;
  Bzp = Mrot/Cnr;

  var Dn=document.getElementById("Dn").value;
  var Dvp=document.getElementById("Dvp").value;
  var Drk=document.getElementById("Drk").value;
  var RO=0;//document.getElementById("RO").value;
  RO = (Bzp+Dn+Dvp+Drk)/12;

  var Y = document.getElementById("Y").value;
  var SV=0;//document.getElementById("SV").value;
  SV = (Bzp+Dn+Dvp+Drk+RO)*Y;

  var U=0;//document.getElementById("U").value;

  var Ub=document.getElementById("Ub").value;
  var Ud1=document.getElementById("Ud1").value;
  var Ud2=document.getElementById("Ud2").value;
  var Ud3=document.getElementById("Ud3").value;
  var Ud4=document.getElementById("Ud4").value;
  var Ud5=document.getElementById("Ud5").value;
  U=Ub+Ud1+Ud2+Ud3+Ud4+Ud5;
  alert(U);
  Si = (Bzp+Dn+Dvp+Drk+RO+SV)*U;
  alert(Si);
  KR = Si*Ki*0.2;
  P = (Si*Ki+KR)*0.05;
  var NMCK = (Si*Ki+KR+P+Ctco+Czg)*Iinfl+Nds;
  console.log(NMCK);
  alert(NMCK);
}
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
@karminski
Senior React.JS Developer
Потому что из поля input на выходе всегда строка. Вам нужно ваши переменные Ud1 привести к числовому значению (parseInt, parseFloat), прежде чем проводить с ними математические операции.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы