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)
- PhilMayorSuper Hero
Jennifer Barnett said:
I ran into a similar issue and I didn't want to spend the time to make this edit since I only had a 3 question quiz so I found a really good alternative!
All I did was change the question scores from the defaulted 10pts (2 to 33pts and 1 to 34pts) and then changed the results display from %Results.ScorePercent% to %Results.ScorePoints%. That resulted in making the results rounded in less than a minute!
this will only work if your points add up yo 100, because you are no longer showing a percentage, points have to be integers - NavinLodhiCommunity Member
Thanks everyone! this is really cool and nice work around.
- TomLunzerCommunity Member
Thanks for the tip. I needed to have rounded off percentages for my project.
This really should be an option that can be set in the quiz options.
I posted a feature request.
I am including a zipped up sample of the Articulate Storyline file here for others to see how this was set up. There is also a "Instructions" PDF file included with some screenshots of variables setup. My quiz here uses a number of question banks so the questions are randomized.
To sum up what happens is per previous instructions by Terri and others I have created a few triggers that divide and then multiply the quiz results Percentage score by 10000000. It does this to push the score percentage past the Seven digits limit decimal place.
- AntonioCommunity Member
Hi Tom,
Thanks a lot for sharing in the community how to do the rounding in such a didactic way. You saved my live when i was asked to do that just last day before turning in a project.
I will place a feature request, as you i think this need to be in quiz options.
- GarryGentCommunity Member
Thanks for the file Tom. Great way of solving the problem
- KeariEggers-3f0Community Member
This tip works really well on the PC but unfortunately doesn't seem to work on iPads (the decimal is still there).
- ChrisRoetzerCommunity Member
I'll try this not for quizzing but simply wanting to display whole % such as % of ee's in one location or another - quizzing must already be displaying %s not in decimal form, since, when working with variables simply on a silde or layer, you must divide by 100,000 & multiply by 10,000,000 to get the correct result.
Don't suppose there's a solution to formatting with commas? for ex: I want the number value (can't be text) of 31000 to display 31,000.
- RobVerzeraCommunity Member
Unfortunately this does not work when the html5 version of the course is run.
- ChrisElkinCommunity Member
Can anyone help me find a fix to my problem.
I have been happily using the rounding up solution posted above (great fix BTW) but I've run into an issue.
I have a screen that calculates stuff. The main calculation is taking a number and dividing it by 30%. This solution has worked a treat until we entered the value 30.
30% of 30 = 9 but this solution because of the divide / multiply scenario returns the incorrect value of 10.
So whilst rounding up is fab in most situations I need a solution that allow me to also return the correct value?
NE1?
- DianaMyersCommunity Member
@Chris Elkin - can you share any part of your file/screens/triggers? And can you clarify if you are multiplying by 30% or dividing by 30%?
30 multiplied by .30 = 9
30 divided by .30 = 100 (if you're using this formula and rounding to two digiits, it would explain why the result returned was 10)
Hope to hear from you soon.
- ChrisElkinCommunity Member
- PhilMayorSuper Hero
It will always show 10 because of the way Storyline calculates to 7 decimal places, you are turning the number into 8 decimal places which rounds up to 0.0000001, this may be where you need to use javascript instead.
- ChrisElkinCommunity Member
Cheers Phil, IU thought this might the case!!!!
So has anyone got an example of a JS rounding script?
- MichaelHinzeCommunity Member
See attahced a file that uses JS to round the input from a numeric entry.
- SandyDutraCommunity Member
I tried applying this JavaScript and it doesn't seem to work. I have an answer that shows as (i.e.) 10.454240362 and I want it to round up to 10.45
How can I apply a variable/JavaScript to make this work?
Thanks
Sandy