|
| Udregninger med decimal ??? Fra : Per Gregersen |
Dato : 08-09-03 08:35 |
|
Jeg har nogle variabler som har nogle værdier med et enkelt
decimal.
fx a=52,2 b= 29,4 c=53,8
Når jeg lægger dem sammen med:
size =a+b+c
og skriver på skærmen med innerHTML skriver den 135.3999999998,
i stedet for 135.4
Der er kun med nogle enkelte tal den gør det???
Hvad gør jeg galt?
Mvh
Per Gregersen
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Martin Hintzmann And~ (08-09-2003)
| Kommentar Fra : Martin Hintzmann And~ |
Dato : 08-09-03 08:46 |
|
Per Gregersen wrote:
> Jeg har nogle variabler som har nogle værdier med et enkelt
> decimal.
> fx a=52,2 b= 29,4 c=53,8
>
> Når jeg lægger dem sammen med:
>
> size =a+b+c
>
> og skriver på skærmen med innerHTML skriver den 135.3999999998,
> i stedet for 135.4
>
> Der er kun med nogle enkelte tal den gør det???
>
> Hvad gør jeg galt?
Hej Per
Det er en afrundingsfejl i javascript. Prøv at brug Math.Round() på resultatet.
http://www.devguru.com/Technologies/ecmascript/quickref/math.html
Eksempel:
Math.round(size)
Ps. Dit sprøgsmål har ikke noget med html at gøre men Javascript
dk.edb.internet.webdesign.clientside
Hintzmann c",)
| |
Bertel Lund Hansen (08-09-2003)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 08-09-03 09:24 |
|
Martin Hintzmann Andersen skrev:
>Det er en afrundingsfejl i javascript.
Næppe. Sådan gør binære computere der skal regne decimalt
medmindre man bruger heltalstyper (som kan udtrykkes præcist i
binær).
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Per Gregersen (08-09-2003)
| Kommentar Fra : Per Gregersen |
Dato : 08-09-03 13:50 |
|
Jeg undskylder fejlplaceringen af spørgsmålet...
Jeg har forsøgt mig med Math.round(size)
Det virker, men den afrunder til et helt tal. Jeg vil gerne have den
til at regne med 1 decimal.
Kan det lade sig gøre?
/Per Gregersen
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Martin Hintzmann And~ (08-09-2003)
| Kommentar Fra : Martin Hintzmann And~ |
Dato : 08-09-03 14:11 |
|
Per Gregersen wrote:
> Jeg undskylder fejlplaceringen af spørgsmålet...
>
> Jeg har forsøgt mig med Math.round(size)
>
> Det virker, men den afrunder til et helt tal. Jeg vil gerne have den
> til at regne med 1 decimal.
>
> Kan det lade sig gøre?
Du kan lave en funktion der gør det.
function round(number,n) {
n = (!n ? 1 : n);
return Math.round(number*Math.pow(10,n))/Math.pow(10,n);
}
round(size,1)
Hintzmann c",)
| |
Benny Nissen (08-09-2003)
| Kommentar Fra : Benny Nissen |
Dato : 08-09-03 12:30 |
|
"Per Gregersen" <per@2-planhuset.dk> skrev i en meddelelse
news:bjhbek$87t$1@sunsite.dk...
> Jeg har nogle variabler som har nogle værdier med et enkelt
> decimal.
> fx a=52,2 b= 29,4 c=53,8
>
> Når jeg lægger dem sammen med:
>
> size =a+b+c
>
> og skriver på skærmen med innerHTML skriver den 135.3999999998,
> i stedet for 135.4
Din computer er vel udstyret med en gammel Pentium CPU
--
Benny Nissen
http://web.bennynissen.dk
| |
|
|