
simple math
could anbody tell em how to get numbers to be showed in theire boxes like 6,00 instead of 6,0 or 6,0000000.
I have got no idea how this funtion works.I tryed INT and Math.round, gues I'm doing something wrong.
Thanks. Leo

http://www.flashkit.com/board/showth...5&pagenumber=1
if you just want to round decimals...
Here is a simple function that'll round a number of to any decimal place.

Math.roundTo = function(num,dp){
var d = Math.pow(10,dp);
return Math.round(num*(d+0.00000001))/d;
};

example:
Math.roundTo(1.2345,2)) //1.23

thanx
I'm not so briliant yet, I think when I see this code VAR D is to be my variable that will be back to decimals here?

My variable is called Eindtotaal
This variable will always be somting like a full number like 2 or 4 or 35 but could also be 3.5 or 78.4.
I need it always to be in this mask 2.00 or 4.00 or 35.00 but also 3.50 or 78.40.
What would be the code.
as you can see, I'm just beginning.

Just set that function on the first frame of your movie, and call it up when needed...
Eindtotaal = 77.2;
trace(Math.roundTo(Eindtotaal,2));
Or...
Eindtotaal = 5;
Eindtotaal_display = Math.roundTo(Eindtotaal,2);
trace(Eindtotaal_display);

Tnx, that is clear. Do you also know a way to reset all variables at once, instead having to give code for, in this case all 380 different onces?
Leo

How about reloading the movie on _level0?

Could I be sending you a file, so you could check what I am doing wrong?
I am finisching this webpage that must be online next monday, however, money seems to shown as 3,4 euro instead of 3,40 euro and that reload from level 0 doesn't seems to ad to my movie, should I change the whole structure then?
I know it is something to ask but, well, see what you can do for a newbee.
Leo



Sorry... But you got me confused with the language used!
In any case, here's the right function you need...
Code:
//format a number into specified number of decimal places
Math.formatDecimals = function (num, digits) {
//if no decimal places needed, we're done
if (digits <= 0) {
return Math.floor(num);
}
//Math floor the number to specified decimal places
//e.g. 12.3456 to 3 digits (12.346) > mult. by 1000, round, div. by 1000
var tenToPower = Math.pow(10, digits);
var cropped = String(Math.floor(num * tenToPower) / tenToPower);
//add decimal point if missing
if (cropped.indexOf(".") == 1) {
cropped += ".0"; //e.g. 5 > 5.0 (at least one zero is needed)
}
//finally, force correct number of zeroes; add some if necessary
var halves = cropped.split("."); //grab numbers to the right of the decimal
//compare digits in right half of string to digits wanted
var zerosNeeded = digits  halves[1].length; //number of zeros to add
for (var i=1; i <= zerosNeeded; i++) {
cropped += "0";
}
return(cropped);
} //Robert Penner May 2001  source@robertpenner.com
Example usage:
Eindtotaal = 77.956;
Eindtotaal_display = Math.formatDecimals(Eindtotaal,2);
trace (Eindtotaal_display);
As for resetting variables, the easiest would seem to be to reload the movie with something like:
on(release){
loadmovieNum("name_of_this.swf", 0);
}
If you only want to reset a certain number of variables (like the order... Not the address and whatever else...) then you could maybe create a 2 frame "reset" movie clip, that would hold the list of the variables you want to reset, and just play that movie clip when the reset button is pressed, e.g.
Frame 1:
Stop();
Frame 2:
_level0.my_var1 = "";
_level0.my_var2 = "";
_level0.my_var3 = 0;
_level0.my_var4 = 0;
_level0.my_var5 = 0;
_level0.my_var6 = "";
// Etc... For all variables you want to reset...
// Then...
this.gotoAndStop(1);
Assuming this reset mc was on stage, with the instance name of "reset1", then from your button...
on(release){
_root.reset1.gotoAndStop(2);
}

Half the way
The variables are clear.
But the script you have given me is far too high for my skill. I absolutly hav eno idea how to get this to work.
I end that Eindtotaal has been given a worth. Still from here only that variable has that worth. I see no place to put in my variable in the script below. If it should be onder num, digits, then how?
I tried,
Math.formatDecimals = function (Eindtotaal, 2) {
and also
Math.formatDecimals = function ((number(eindtotaal)), 2) {
What am I missing here, I probebly am searching for my shirt while I have it on, but again, please explain what the code is saying and how to use.
code:
//format a number into specified number of decimal places
Math.formatDecimals = function (num, digits) {
//if no decimal places needed, we're done
if (digits <= 0) {
return Math.floor(num);
}
//Math floor the number to specified decimal places
//e.g. 12.3456 to 3 digits (12.346) > mult. by 1000, round, div. by 1000
var tenToPower = Math.pow(10, digits);
var cropped = String(Math.floor(num * tenToPower) / tenToPower);
//add decimal point if missing
if (cropped.indexOf(".") == 1) {
cropped += ".0"; //e.g. 5 > 5.0 (at least one zero is needed)
}
//finally, force correct number of zeroes; add some if necessary
var halves = cropped.split("."); //grab numbers to the right of the decimal
//compare digits in right half of string to digits wanted
var zerosNeeded = digits  halves[1].length; //number of zeros to add
for (var i=1; i <= zerosNeeded; i++) {
cropped += "0";
}
return(cropped);
} //Robert Penner May 2001  source@robertpenner.com

Example usage:
Eindtotaal = 77.956;
Eindtotaal_display = Math.formatDecimals(Eindtotaal,2);
trace (Eindtotaal_display);

First of all copy that function (between the lines in blue) in my above post,
and paste it on the first frame of your movie, for sake of clarity on it's own layer.
Now, assuming a user as filled in the form, and supposing the total is held in this
variable named Eindtotaal, rather than displaying that variable,
I suggest you set up a new variable called Eindtotaal_display
which will be formated by that function on your first frame.
So when your total has been calculated and you come up with
Eindtotaal = 77 euros for example, then use this to format that total:
Eindtotaal_display = Math.formatDecimals(Eindtotaal,2);
That's all you do to call the function, you don't set or change anything
in the function itself, and the above line should output:
77.00 ...Which is what you wanted.
Now change your textfield's variable from Eindtotaal to Eindtotaal_display,
and it should now display the correctly formated value.
Do the same for any other variable you want to format.
If you have a totaltaxes variable named Eindtaxestotaal than create a new
variable Eindtaxestotaal_display, and format it with:
Eindtaxestotaal_display = Math.formatDecimals(Eindtaxestotaal,2);

!
I am truly sorry you can't see me dance here.
This is language I do understand.
Love U for it grany!!

Grany has the patience of a saint!

honest, you put a lot of time in it.
greatfull for it.
Should I be able to help in any way.
got my adres
Last edited by breinstein; 03012003 at 06:13 PM.

How about spilling out the cash (in euros if you want!) for a 3 week trip to Tahiti (all included!) for me & the wife?
Guess it wouldn't be asking for too much, now would it?
Glad I could help!

full of it
keep trying. I do make some money on these pages however. If you are able to design code on I higher level as my bul@#$%@$, we might be able to actually make some money, besides the regulair job offcourse.
Posting Permissions
 You may not post new threads
 You may not post replies
 You may not post attachments
 You may not edit your posts

Forum Rules

Click Here to Expand Forum to Full Width
