• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Math.floor does not work

New Here ,
Jan 06, 2018 Jan 06, 2018

Copy link to clipboard

Copied

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

TOPICS
Acrobat SDK and JavaScript , Windows

Views

612

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Community Expert , Jan 06, 2018 Jan 06, 2018

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

...

Votes

Translate

Translate
Community Expert ,
Jan 06, 2018 Jan 06, 2018

Copy link to clipboard

Copied

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?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 06, 2018 Jan 06, 2018

Copy link to clipboard

Copied

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

fields_1.PNG

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?

fields_2.PNG

these are my lines of code:

fields_3.PNG

What's wrong?

Thank you

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jan 06, 2018 Jan 06, 2018

Copy link to clipboard

Copied

Check the calculation order.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jan 06, 2018 Jan 06, 2018

Copy link to clipboard

Copied

LATEST

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.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines