Forum Discussion
A Solution to rounding in Storyline – without using Javascript
Normal
0
false
false
false
oNotPromoteQF />
EN-US
X-NONE
X-NONE
I found a way to round numbers in Storyline without using Javascript. The challenge was to show whole percentage numbers from calculated decimal numbers (i.e. 33% for 1/3 and 67% for 2/3). Searching through the forums, all I could find was Javascript solutions and suggestions to submit a feature request. Not happy with either of these answers, I continued to play around.
I found that Storyline only holds 7 digits past the decimal place, and the 7th digit is rounded. So to get a rounded decimal (percentage) as a whole number, divide by 100,000, and then multiply by 10,000,000.
For example:
2 / 3 = 0.6666667 (rounded at the 7th position by Storyline)
0.6666667 / 100,000 = .000006666667 (which is rounded to 0.0000067)
0.0000067 * 10,000,000 = 67
Now we have our rounded 67% from 2/3
You should be able to apply this to any number you want to round. Divide and then multiply by a multiple of 10 that is large enough to push the number you want to round to the 7th position past the decimal (i.e. 13,567 / 10,000,000,000 * 10,000,000,000 = 14,000)
Hello everyone,
I have some great news to share! We just released another update for Storyline 360. In Update 112, we’ve included essential fixes and new features. One of the new features we’ve included is:
- Simplify reporting with a built-in option that rounds quiz scores to whole numbers.
Launch the Articulate 360 desktop app on your computer to take advantage of this update, and click the Update button next to Storyline 360. You’ll find our step-by-step instructions here.
Please let me know if you need additional help.
100 Replies
- ChrisElkinCommunity Member
Hi - thanks for this script.
I've added the additional line to the code:
var numTimes = numValue * 0.3;
and now I don't get a rounded whole number with every calculation
e.g.
enter 100 returns 30 - cool
enter 30 returns 9 - cool
enter 54 returns 16.2 - ??? would like it to round unto 17
NE1?
_________________________________________________________________________
var numValue = player.GetVar("howMany");
var numTimes = numValue * 0.3;
var JSRoundedNum = numTimes.toFixed(1);
player.SetVar("total",JSRoundedNum);
- KyleTrailCommunity Member
I ended up just creating the variables and dividing then multiplying them. It worked like a charm.
- AllisonAntalek-Community Member
All you seriously have to do is delete the first set - %Results.ScorePercent%% - and then remove the parentheses and then all you get is the total amount of points. Hope this helps! Allison
- StephaniePownerCommunity Member
Please does anyone know if the number of decimal places stored has changed? I have published a course in Storyline 1 before and using the dividing/multiply method and all worked fine. Have now published from Storyline 2 and I get the two decimal places again. Also, I am now using HTML5 output. Thanks
- YoncaUral1Community Member
Hi,
As someone who doesn't really know much about Javascript, I'm trying to figure out how to solve a problem I'm having. In our course, we have a variable that we are displaying on each page to show the % complete. We did the divide by 10,000,000 then multiply by 10,000,000 and it's working fine non-mac devices. However Macs are still displaying the two decimal places and we want to get rid of that. So, I tried to add this JS after my % visited variable is calculated and it's not working.
Here is what I added:
var player = GetPlayer();
var numValue = GblScreensVisitedPercentage
var JSRoundedNum = numValue.toFixed(1);
player.SetVar("RoundedNum",JSRoundedNum);Any thoughts would be greatly appreciated!
- JodieJones1Community Member
Wow. I was skeptical, but this worked great! Thank you soooooooo much.
- BobColemanCommunity Member
Why couldn't you perform your math functions followed by the division and multiplication at the end to get the whole number. You could also use a condition to say if the answer is >10, you subtract one of the 0's, still allowing you to use the program without JS.
ex. answerNum / 100000 x 10000000 if answerNum<10
then another trigger that says answerNum / 10000 x 10000000 if answerNum>=10
The concept should be true. I'd have to actually play with the numbers to make it work exactly, but these kinds of triggers are definitely doable.
- ravikhadeCommunity Member
This works fine in flash version but not in html5 version
- dohareCommunity Member
Does anyone have specific screen shots on how to do round the percentage? I really can't seem to work out how to do this.
Thanks!
- MikeClapper-5daCommunity Member
I've tried this method in Storyline 3, and it doesn't seem to work. I still get a percentage down to the hundredths. I've even taken the divide/multiply operation to the maximum number of characters to no avail.
I tried copying some Javascript as well. I created a trigger to execute the following Javascript command: Math.round(Results.ScorePercent);
This did not work, either.
Any suggestions?