| 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: 11 let
|
|||
0