If you are requesting technical assistance with Twine, please specify:
Twine Version: 2.4.0
Story Format: Harlowe 3.3.0
I was trying to do some (hopefully very simple) maths in my story, but I clearly don’t understand even simple maths, because it’s gone terribly skew-whiff.
I wanted to assign a variable ($vol1) to any of a set of possible numbers and then multiply that number by 23. (Simple, right?)
I set up my code like this:
(set: $vol1 to (either: 0.1, 0.25, 0.50, 0.75, 1.1, 1.5, 2.0)) (set: $a1 to (23 * $vol1)) (set: $a2 to (string: $a1)) (print: $vol1) - this is the vol value that was selected <br> (print: $a1) - this is variable a1 <br> (print: $a2) - should be a string of a1
and then tested it out. It works correctly most of the time (by which, I mean that it multiplies $vol1 by 23, and spits that out as $a1 and $a2 (just double-checking, lol).
0.25 - this is the vol value that was selected
5.75 - this is variable a1
5.75 - should be a string of a1
and that is what I expected it to print.)
This code doesn’t, however, work correctly when $vol1 is chosen as 0.1. It outputs this instead:
0.1 - this is the vol value that was selected
2.3000000000000003 - this is variable a1
2.3000000000000003 - should be a string of a1
…and then at this point I started questioning my sanity (and understanding of maths), because why is $a1 not 2.3?
If I remove 0.1 from the possible options for $vol1, all of the other numbers still work as previously, so I guess it must be something special about 0.1 as a number (and not its position in the list of options?)
I guess it isn’t a huge deal in the scope of things (I can take out 0.1 from the list without any problems) - but what did I do wrong, and what is different about 0.1? Are there other numbers I should avoid because they’ll return the same problem?
Thanks in advance for any help - I know it’s an incredibly stupid question, probably I should really be sent back to a basic maths class but I can’t seem to figure this out on my own!