Help in double precision addition

喜夏-厌秋 提交于 2019-11-28 07:36:03

问题


I was testing some of my code, in javascript I added .1+.2 and it gives me .30000000000000004 instead of .3 . I don't understand this. But when I added .1+.3 it gives me .4. I googled it and find its something about Double Precision addition. But I don't know what it is.


回答1:


Here's the obligatory link: What Every Computer Scientist Should Know About Floating-Point Arithmetic

Basically, there are many base 10 numbers that cannot be exactly represented in the floating point format used by most computers, so you'll get issues like the ones you highlight.




回答2:


If you can't stay awake for What Every Computer Scientist Should Know About Floating-Point Arithmetic, try instead the javascript-specific Rounding in JavaScript.




回答3:


Floating point numbers have a finite amount of precision, as the number is stored in a finite number of bits.

The number you are trying to store can't be stored accurately, so an approximation is used.

What Every Computer Scientist Should Know About Floating-Point Arithmetic .



来源:https://stackoverflow.com/questions/6093534/help-in-double-precision-addition

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!