Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

Unusual Math

I was trying to use a drop-down box to store a number of modifiers and found the calculations came up kind of wonky. I don't see any errors (although i could be missing something), but the math comes out wrong. I'm using Chrome version 35.0.1916.153 m under Windows 7. I used the following html: <select name='attr_action'> <option value='2.1552121111' selected>Melee: Standard Attack</option> <option value='2.1952121111'>Melee: All-Out Attack (Determined)</option> <option value='2.1552121111'>Melee: All-Out Attack (Extra Attack)</option> <option value='2.1552121111'>Melee: All-Out Attack (Strong)</option> <option value='2.1152118111'>Melee: Move and Attack</option> <option value='2.1551821161'>Melee: Wild Swing</option> <option disabled>--------------</option> <option value='2.1552121111'>Slam</option> <option value='2.1952121111'>Slam: All-Out Attack (Determined)</option> <option value='2.1552121111'>Slam: All-Out Attack (Strong)</option> <option disabled>--------------</option> <option value='1.2552121211'>Ranged: Standard Attack</option> <option value='1.2592121211'>Ranged: All-Out Attack (Determined)</option> <option value='1.2512118111'>Ranged: Move and Attack</option> <option value='1.1552121111'>Aim</option> <option disabled>--------------</option> <option value='1.1552121111'>Evaluate</option> <option value='1.1552121111'>Move</option> <option value='1.1552121111'>Ready</option> <option value='1.1552121111'>Wait</option> </select> <input name='attr_d1' type='hidden' value='floor(@{action})' disabled /> <input name='attr_d2a' type='hidden' value='(@{action}-@{d1})*10' disabled /> <input name='attr_d2' type='hidden' value='floor(@{d2a})' disabled /> <input name='attr_d3a' type='hidden' value='(@{d2a}-@{d2})*10' disabled /> <input name='attr_d3' type='hidden' value='floor(@{d3a})' disabled /> <input name='attr_d4a' type='hidden' value='(@{d3a}-@{d3})*10' disabled /> <input name='attr_d4' type='hidden' value='floor(@{d4a})' disabled /> <input name='attr_d5a' type='hidden' value='(@{d4a}-@{d4})*10' disabled /> <input name='attr_d5' type='hidden' value='floor(@{d5a})' disabled /> <input name='attr_d6a' type='hidden' value='(@{d5a}-@{d5})*10' disabled /> <input name='attr_d6' type='hidden' value='floor(@{d6a})' disabled /> <input name='attr_d7a' type='hidden' value='(@{d6a}-@{d6})*10' disabled /> <input name='attr_d7' type='hidden' value='floor(@{d7a})' disabled /> <input name='attr_d8a' type='hidden' value='(@{d7a}-@{d7})*10' disabled /> <input name='attr_d8' type='hidden' value='floor(@{d8a})' disabled /> <input name='attr_d9a' type='hidden' value='(@{d8a}-@{d8})*10' disabled /> <input name='attr_d9' type='hidden' value='floor(@{d9a})' disabled /> <input name='attr_dfa' type='hidden' value='(@{d9a}-@{d9})*10' disabled /> <input name='attr_df' type='hidden' value='floor(@{dfa})' disabled /> <input name='attr_IsMelee' type='hidden' value='@{d1}-1' disabled /> <input name='attr_IsRanged' type='hidden' value='@{d2}-1' disabled /> <input name='attr_MeleeBonus' type='hidden' value='@{d3}-5' disabled /> <input name='attr_RangedBonus' type='hidden' value='@{d4}-5' disabled /> (1-<input name='attr_BasMult' type='number' value='@{d5}-1' disabled />) = <input name='attr_SetBase' type='number' value='1-@{BasMult}' disabled /> And I get the result: If I change the numbers, I consistently get a result that is off by two. If I multiply the result by 9 I get a result of -8.
1403160617

Edited 1403160667
Lithl
Pro
Sheet Author
API Scripter
In your screenshot, @SetBase is: 1-floor(((((2.1552121111-floor(2.1552121111))*10-floor((2.1552121111-floor(2.1552121111))*10))*10-floor(((2.1552121111-floor(2.1552121111))*10-floor((2.1552121111-floor(2.1552121111))*10))*10))*10-floor((((2.1552121111-floor(2.1552121111))*10-floor((2.1552121111-floor(2.1552121111))*10))*10-floor(((2.1552121111-floor(2.1552121111))*10-floor((2.1552121111-floor(2.1552121111))*10))*10))*10))*10)-1 = 1-floor(((((2.1552121111-2)*10-floor((2.1552121111-2)*10))*10-floor(((2.1552121111-2)*10-floor((2.1552121111-2)*10))*10))*10-floor((((2.1552121111-2)*10-floor((2.1552121111-2)*10))*10-floor(((2.1552121111-2)*10-floor((2.1552121111-2)*10))*10))*10))*10)-1 = 1-floor(((((0.1552121111)*10-floor((0.1552121111)*10))*10-floor(((0.1552121111)*10-floor((0.1552121111)*10))*10))*10-floor((((0.1552121111)*10-floor((0.1552121111)*10))*10-floor(((0.1552121111)*10-floor((0.1552121111)*10))*10))*10))*10)-1 = 1-floor((((1.552121111-floor(1.552121111))*10-floor((1.552121111-floor(1.552121111))*10))*10-floor(((1.552121111-floor(1.552121111))*10-floor((1.552121111-floor(1.552121111))*10))*10))*10)-1 = 1-floor((((1.552121111-1)*10-floor((1.552121111-1)*10))*10-floor(((1.552121111-1)*10-floor((1.552121111-1)*10))*10))*10)-1 = 1-floor((((0.552121111)*10-floor((0.552121111)*10))*10-floor(((0.552121111)*10-floor((0.552121111)*10))*10))*10)-1 = 1-floor(((5.52121111-floor(5.52121111))*10-floor((5.52121111-floor(5.52121111))*10))*10)-1 = 1-floor(((5.52121111-5)*10-floor((5.52121111-5)*10))*10)-1 = 1-floor(((0.52121111)*10-floor((0.52121111)*10))*10)-1 = 1-floor((5.2121111-floor(5.2121111))*10)-1 = 1-floor((5.2121111-5)*10)-1 = 1-floor((0.2121111)*10)-1 = 1-floor(2.121111)-1 = 1-2-1 = -1-1 = -2 Try changing @BasMult to "(@{d5}-1)"; the end result should then be 1-(2-1) = 1-1 = 0
So it doesn't complete the operation in each step first? As I was looking at it, I was seeing the last few steps there as 2-1=1 followed by a separate operation: 1-1=0 when it was actually all one operation which should read: 1-(2-1) This explains much that I wasn't getting.
The Order of Operations is detailed here: <a href="https://wiki.roll20.net/Dice_Reference#Order_of_Operations" rel="nofollow">https://wiki.roll20.net/Dice_Reference#Order_of_Operations</a>