Autor | Zpráva | ||
---|---|---|---|
Pája Profil * |
#1 · Zasláno: 30. 3. 2015, 17:22:22
zaklad = 2623.43
dan23 = 550.93 kcs = 3174 dan = 0 hal_vyr = -0,36 jakmile se tam objeví záporné číslo, tak ať jsem tam teď udělal počítání s absolutní hodnotou, tak mi vychází nesmysly..... výsledkem je 3173.9999999999999995 což je ale logicky nesmysl..... vidíte tam někdo prosím chybu? Díky Zde je kód: <SCRIPT LANGUAGE="JavaScript"> function kontrola() { if(document.getElementById('kcs').value!="") { var kcs = document.getElementById('kcs').value; } else { var kcs = 0; } if(document.getElementById('zaklad').value!="") { var zaklad = document.getElementById('zaklad').value; } else { var zaklad = 0; } if(document.getElementById('dan23').value!="") { var dan23 = document.getElementById('dan23').value; } else { var dan23 = 0; } if(document.getElementById('dan0').value!="") { var dan0 = document.getElementById('dan0').value; } else { var dan0 = 0; } if(document.getElementById('hal_vyr').value!="") { var hal_vyr = document.getElementById('hal_vyr').value; } else { var hal_vyr = 0; } kcs=parseFloat(kcs); zaklad=parseFloat(zaklad); dan23=parseFloat(dan23); dan0=parseFloat(dan0); hal_vyr=parseFloat(hal_vyr); if(hal_vyr<0) { hal_vyr = Math.abs(hal_vyr); hal_vyr=parseFloat(hal_vyr); var cel = (zaklad + dan23 + dan0) - hal_vyr; } else { var cel = zaklad + dan23 + dan0 + hal_vyr; } if(kcs != cel) { alert(cel); return false; } else { alert("Rovná se"); return true; } } </SCRIPT> |
||
juriad Profil |
Je to správně, tak prostě pracuje počítač s desetinnými čísly.
Časté potíže, zajímavosti a poučné debaty » Výsledkem výpočtu 1 - 0.9 není přesně 0.1
Máš dvě možnosti: 1) zaokrouhlovat na konci výpočtu 2) nepracovat s desetinnými čísly, vůbec; výpočet v korunách můžeš nahradit za výpočet v halířích (těch už je celé číslo). |
||
Časová prodleva: 10 let
|
0