Volledige versie bekijken : Getallen afronden achter de komma
geertjan_83
%Europe/Berlin %269 %2005, 06:27
Beste mensen,
Ik heb al een beetje rondegezocht maar nog niks gevonden. Ik heb een simpel calculatortje in flash mx 2004 gemaakt en nou wil ik dat in het resultaten veld (een dynamic textfield met de instancenaam result) dat de reeks getallen achter de komma netjes worden afgerond naar twee getallen achter de komma. Ik weet inmiddels dat je dan de functie Math.round() kunt gebruiken maar hoe werkt deze precies?
Alvast bedankt !
theFlashWizard
%Europe/Berlin %297 %2005, 07:08
die rond simpelweg af tot hele getallen.. maar mischien heb je hier wat aan:
http://www.flashfocus.nl/forum/showthread.php?t=277 :)
geertjan_83
%Europe/Berlin %366 %2005, 08:47
Alvast bedankt, ik kom er echter nog niet helemaal uit (ben niet zon actionscript goeroe) Als het goed is moet ik dus uiteindelijk de functie trace(x.round(5)); gebruiken, maar hoe koppel ik die aan het text veld?
theFlashWizard
%Europe/Berlin %392 %2005, 09:24
geef die bijv de instancename myText_txt
en zet dan in het keyframe het volgende script:
myText_txt.text = x.round(5)
geertjan_83
%Europe/Berlin %451 %2005, 10:50
Ok, ik ben er bijna ! Het enigste wat er nu nog mis is is dat hij de waarde van x overneemt:
x = 2957.4856298;
Hoe maak ik het zo dat hij de instancenaam neemt? ik had al: x = myText_txt.text; geprobeert, maar dit werkt blijkbaar niet.
Alvast bedankt maar weer!
gbolssens
%Europe/Berlin %515 %2005, 12:22
die myText.text is een string, en om ermee te kunnen rekenen moet het een Number zijn:
x = parseFloat(myText_txt.text);
Ik heb hier ooit eens het volgende functietje voor geschreven (al dat gedoe met die prototypes vind ik maar niks):
function roundDec(a, d)
{
factor = Math.pow(10,d);
return Math.round(a*factor)/factor;
}
toepassing:
//bvb om het getal 2957.4856298 af te ronden op 3 decimalen
p=2957.4856298;
trace(roundDec(p,3)); // geeft 2957.486
//als het uit een tekstveld moet komen doe je het bvb zo:
p=parseFloat(myText_txt.text);
trace(roundDec(p,3));
Ik hoop dat je hier iets mee bent.
Greetz,
GB
theFlashWizard
%Europe/Berlin %517 %2005, 12:24
em.. met mijn scriptje zet je toch de afgeronde uitkomst van x in het textfield..
wat wil je nu precies?
anders moet je gewoon is kijken in flash help wat je met .text kan..
gbolssens
%Europe/Berlin %517 %2005, 12:24
Hoe maak ik het zo dat hij de instancenaam neemt?
Als je de instancenaam van iets moet hebben dan zeg je
myText._name
Dat is toch zo bij mc's, dus wellicht ook bij andere dingen die een instancename kunnen hebben (ben echter niet 100% zeker)
greetz,
GB
geertjan_83
%Europe/Berlin %579 %2005, 13:54
Bedankt, bedankt ! die: x = parseFloat(myText_txt.text); was inderdaad de oplossing.
wat ik nu heb is een simpele calculator, waar bij de uitkomst die in een textveld verschijnt netjes word afgerond naar twee getallen achter de komma.
Bedankt voor jullie hulp !
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.