JavaScript har mange fordele som en web-udvikling sprog . Dens ene iøjnefaldende svaghed er floating point eller decimal , beregninger. Mens heltal operationer i JavaScript anses for at være pålidelige, kan resultaterne af floating point beregninger undertiden være overraskende. Disse overraskelser er ansvarlige for tidlig aldring og irritabilitet i en stor procentdel af nybegyndere programmører. Interessante resultater
Fejl i floating point beregninger er ikke ukendte i andre programmeringssprog. Disse normalt forekommer i store værdi numre. JavaScript producerer interessante resultater under operationer med værdier så lave som 0,06 + 0,01. De fleste mennesker ville tilbyde 0,07 som løsningen på denne ligning. JavaScript løser dette svar 0,06999999999999 . Tæt på, men ikke tæt nok til kommerciel anvendelse.
Formatering og Precision
JavaScript tilbyder to funktioner, toFixed () og toPrecision (), der fjerner de problemer med displayet er forbundet med uforudsigelige resultater . Den toFixed () funktionen giver dig mulighed for at bestemme antallet af cifre viser programmet efter kommaet . I tilfælde af valuta ved hjælp af num.toFixed argument (2) viser kun de første to cifre efter kommaet med automatisk afrunding. Den toPrecision () funktion viser et svar med det samlede antal cifre er angivet i argumentet , uden hensyn til deres forhold til kommaet.
Årsagen
Afrundingsfejl introduceres når decimaltal konverteres til binære strenge. Denne proces er nødvendig, fordi en computer kun kan fungere med nuller og ettaller . Mange sprog overvinde denne afrunding fejl med brug af datatyper. Ved at specificere hvordan og med hvilken præcision en variabel lagres , reducere sprog som C og Java disse fejl. Når erklære en variabel i JavaScript , ingen angivne type . Dette resulterer i tegn , strygere, heltal og flåd bliver behandlet mere eller mindre ligeligt .
Løsning
p mest almindeligt anvendte strategi for at overvinde floating point fejl i JavaScript , er at formere begge variabler med 100 , før du udfører en beregning ved hjælp af runde () funktionen til at reducere floating point fejl, og dividere resultatet af denne operation med 100 før du udskriver svaret.
< br >