+ 1
Is there a work-around for this dividing error?
When dividing numbers in many languages, there are some results that return an imperfect float. For example I tried to run (7 / 100) which should normally return 0.07, but actually returns something like 0.0700000001. I sort of understand how it happens; computers use approximations of numbers so division picks up a lot of noise. My question is, is there an easy way of fixing that error? Here's the calculator project I'm working on, which prompted this question: https://code.sololearn.com/Wnh1WZ81S7jb/?ref=app
2 Answers
+ 1
The complete issue is that both the computer and humans use approximations, but we use decimal ones, while computers use binary ones. The conversion is not exact.
I can think of 2 ways, not necessarily easy, to elliminate these conversion errors:
1. Use decimal notation like a*b^10, where both a and b are integers
2. Use fraction notation
0
Knowing that you had understood the reason behind the anomaly, I guess you might also have figured that - Javascript just as any programming language relies on the same floating point processor of the machine in doing floating point arithmetics.
So presumably, Javascript should also be "suffering" from similar syndrome other languages do in regards to floating point arithmetics; along with different manual workarounds each language may implement.