Gå til innhold

Begrense antall desimaler i en variabel


Anbefalte innlegg

Tror det jeg spør om er ganske enkelt, viser først koden:

 

function omregning(evt:MouseEvent) {
var km = Number(nautTxt.text) * 1.852;
var kmt = Number(knopTxt.text) * 1.852;
var tid = km / kmt;
txt.text = String("Avstand: " + km + "km" + "\n" + "Fart: " + kmt + "km/t" + "\n" + "Tid: " + tid + " timer");
}

 

som dere ser har jeg tre variabler: km, kmt og tid. På scenen har jeg to input tekstfelt hvor brukeren skriver inn tallverdier, og variabelen ganger dem med 1.852. Problemet er at når jeg Stringer ut resultatet får jeg avsindig mange desimaler og det ser så stygt ut.

Kan jeg bruke Math.Round? I så fall, hvordan? Jeg ønsker at den begrenser seg til 3 desimaler, eller bare runder opp/ned alt ettersom hva som lar seg gjøre.

 

Hjelp settes pris på, og gi en lyd hvis jeg må forklare noe.

Lenke til kommentar
Videoannonse
Annonse

Igjen; jeg har ikke programmert i flash, men fant dette:

 

http://kb2.adobe.com...5/tn_15542.html

 

utdrag...:

 

 

How the code works

The number used in the example below is 20 divided by 7, which equates to 2.857142857142857.

 

 value= int((20/7)*100)/100; 		

tri.gif int(20/7)returns the value of 2 by removing the decimal places off the number created by the calculation in parentheses so that it appears as a whole number. tri.gif Multiplying that result by 100 gives 285. Note: This is due to the fact that theintfunction does not erase the decimals; it just does not show them.

 

tri.gif Dividing 285 by 100 gives 2.85. You have now rounded to the nearest hundredth.

 

Rounding to other decimal places

If you prefer to round to a decimal other than to the hundredth, you can easily modify the code. Below are examples of code that will round (20/7) to different decimals:

 

[table=Rounding to other decimal places]

CodeNumber of Decimal PlacesExample Resultsvalue= Math.round(20/7);none3value= int((20/7)*10)/10;12.8value= int((20/7)*100)/100;22.85value= int((20/7)*1000)/1000;32.857value= int((20/7)*10000)/10000;42.8571[/table]

 

 

Aner ikke om den fyller ut med 0 ved manglende desimaler..

 

Brukte jo lenger tid på å lage denne tabellen enn på å finne svaret :hmm:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...