Skip to main content
ericnandoj
New Participant
January 6, 2018
Answered

Math.floor does not work

  • January 6, 2018
  • 1 reply
  • 929 views

I need help with this rounding:

var v3 = (this.getField("valor_for").value-10)/2;

event.value = Math.floor(v3);

I need the value of the operation always be rounded down

thanks

This topic has been closed for replies.
Correct answer Karl Heinz Kremer

A good way to debug these things (besides actually running in the JavaScript debugger and stepping through your code one line at a time) is to add debug output to your script. Add these two lines just after you calculate v3:

console.println("v3 = " + v3);

console.println("Math.floor(v3) = " + Math.floor(v3));

Now you can see what your script does. It works correctly for me.

If you are not getting the correct results, and if the value of the "valor_for" field is calculated as well, you need to check your calculation order (which is what I think Bernd wanted to say): If the 2nd field gets calculated before the results of the first field are available, then you are working with the previous value, which could explain the behavior you are seeing.

1 reply

Karl Heinz  Kremer
Braniac
January 6, 2018

Please give some examples of when it’s not working correctly. What values do you enyet, what do you expect as output, and what is the actual output?

ericnandoj
New Participant
January 6, 2018

When I write the code without Math.floor, the calculation works, for example:

var v3 = (this.getField("valor_for").value-10)/2;

event.value = (v3);

                                valor_for field                                          output of calculation (20-10)/2 = 5

But when I put Math.floor, nothing happens:

var v3 = (this.getField("valor_for").value-10)/2;

event.value = Math.floor(v3);

                              valor_for field                                            output of calculation (31-10)/2 = 10,5 -

                                                                                          with Math.floor the result would be 10 right?

these are my lines of code:

What's wrong?

Thank you

Bernd Alheit
Braniac
January 6, 2018

Check the calculation order.