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

# Can this be calculated in acrobat?

Explorer ,
Aug 13, 2020 Aug 13, 2020

Copy link to clipboard

Copied

If possible, how to do it pls?

TOPICS
Acrobat SDK and JavaScript

Views

1.2K

Report

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

## 1 Correct answer

Community Expert , Aug 24, 2020 Aug 24, 2020

Use this:

var x = Number(this.getField("Rating").value);
var x2 = Math.pow(x, 2);
var al = Number(this.getField("AreaLevel").value);
var al2 = Math.pow(al, 2);
var hf = (.1*x)+(.001*x2);
var lf = 10+(.5*al)+(.05*al2);
var f = (hf/lf)+1;
var f1 = (1/f);
event.value = (1-f1)*.8;

EDIT: if you want it  to be more precise use this:

var x = Number(this.getField("Rating").value);
var x2 = Math.pow(x, 2);
var al = Number(this.getField("AreaLevel").value);
var al2 = Math.pow(al, 2);
var hf = (.1*x)+(.001*x2);
var lf =

...

16 Replies 16
Community Expert ,
Aug 13, 2020 Aug 13, 2020

Copy link to clipboard

Copied

Yes it is possible with the Math functions.

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 Expert ,
Aug 13, 2020 Aug 13, 2020

Copy link to clipboard

Copied

There's nothing special about this formula. The only operator that's a bit different is the square ("power of two") one, which can be done in JS using the pow (power) function of the Math object, like this:

Math.pow(x,y)

With y being 2 in this case.

The rest is just normal math operators ( + - / * ), and possibly parentheses.

Report

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

Copy link to clipboard

Copied

Hi, guys I still need help with this one, I was trying to figure it out but I'm stuck how to get this into code.
field1 is dodge rating and field2 is area level
and in field3 should be calculated percentage.
I'v gathered some info on the net so hopefully some1 can help me pls.
this is info i got so far:
calculator: https://www.desmos.com/calculator/b7s5aqep3b
original info: https://lastepoch.gamepedia.com/Dodge
and here are some examples:

Thanks in advance 🙂

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 Expert ,
Aug 24, 2020 Aug 24, 2020

Copy link to clipboard

Copied

If you're interested I could write the script for you that does this calculation, for a small fee.

You can contact me privately via [try6767 at gmail.com] to discuss it further.

Report

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

Copy link to clipboard

Copied

Thank you for your offer try67. I was working on javascript myself  but I'm not getting any result when using my code.

Can you tell me if i'm on right track at least?

var x = Number(this.getField("Rating").value);
var x2 = Math.pow(x, 2);
var al = Number(this.getField("AreaLevel").value);
var al2 = Math.pow(al, 2);
var lf = math.fraction(.1(x)+.001(x2),10+0.5(al)+0.05(al2))+1;
event.value = .8-(math.fraction(.8, lf));

I'm having trouble writing .001x2 getting "identifier starts immediately after numeric literal" so i used

parentheses but I don't think it's the right way.

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 Expert ,
Aug 24, 2020 Aug 24, 2020

Copy link to clipboard

Copied

To multiply values use *:

E.g. 0.001 * x2

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 Expert ,
Aug 24, 2020 Aug 24, 2020

Copy link to clipboard

Copied

- There's no such thing as math.fraction in core JavaScript.

- JS doesn't allow implicit operators. If you want to multiply two values you have to use the "*" operator between them.

Report

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

Copy link to clipboard

Copied

Thanks il try with multiply.

I found math.fraction here: https://mathjs.org/docs/datatypes/fractions.html

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 Expert ,
Aug 24, 2020 Aug 24, 2020

Copy link to clipboard

Copied

That's part of an external JS library. If you install it then you could use that command, but there's really no need to just for this one function. You can divide by using the "/" operator.

Report

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

Copy link to clipboard

Copied

Thank you guys for help,I sort of got it to work in example: rating 527 and area level 5 i get 75% instead of 77%, also as area level get higher value  percentage should be lower and mine is getting higher. any advice?

var x = Number(this.getField("Rating").value);
var x2 = Math.pow(x, 2);
var al = Number(this.getField("AreaLevel").value);
var al2 = Math.pow(al, 2);
var lf = (.1*x+.001*x2,10+0.5*al+0.05*al2)+1;
event.value = .8-(.8/lf);

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 Expert ,
Aug 24, 2020 Aug 24, 2020

Copy link to clipboard

Copied

Why does you use a comma there:

var lf = (.1*x+.001*x2,10+0.5*al+0.05*al2)+1;

Report

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

Copy link to clipboard

Copied

I thought I was supposed to.Would that affect anything?

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 Expert ,
Aug 24, 2020 Aug 24, 2020

Copy link to clipboard

Copied

You're not, and yes, it will cause it not to work correctly. What exactly did you intend to achieve by using it?

Report

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

Copy link to clipboard

Copied

I was trying to separate fractions because if i use / it works even worse.

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 Expert ,
Aug 24, 2020 Aug 24, 2020

Copy link to clipboard

Copied

Use this:

var x = Number(this.getField("Rating").value);
var x2 = Math.pow(x, 2);
var al = Number(this.getField("AreaLevel").value);
var al2 = Math.pow(al, 2);
var hf = (.1*x)+(.001*x2);
var lf = 10+(.5*al)+(.05*al2);
var f = (hf/lf)+1;
var f1 = (1/f);
event.value = (1-f1)*.8;

EDIT: if you want it  to be more precise use this:

var x = Number(this.getField("Rating").value);
var x2 = Math.pow(x, 2);
var al = Number(this.getField("AreaLevel").value);
var al2 = Math.pow(al, 2);
var hf = (.1*x)+(.001*x2);
var lf = 10+(.5*al)+(.05*al2);
var f = (hf/lf)+1;
var f1 = (1/f);
if(al<15){
event.value = (1-f1)*.797;
}else if(al<27){
event.value = (1-f1)*.787;
}else if(al<34){
event.value = (1-f1)*.775;
}else if(al<43){
event.value = (1-f1)*.767;
}else if(al<48){
event.value = (1-f1)*.758;
}else if(al<60){
event.value = (1-f1)*.749;
}

Report

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

Copy link to clipboard

Copied

LATEST

Thank you Nesa so much that is working like a charm. Thank you all for helping 🙂