/ Forside / Teknologi / Udvikling / HTML / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
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



Søg
Reklame
Statistik
Spørgsmål : 177505
Tips : 31968
Nyheder : 719565
Indlæg : 6408554
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste