常见问题解答主题-为什么简单的十进制算法会产生奇怪的结果?

------------------------------------------------------------------------------------ ---------------------------------- 常见问题解答主题 - 为什么简单的小数算术会给奇怪 结果? ------------------------------------------------------------------------------------ ---------------------------------- 例如,5*1.015不给出准确的5.075和0.06+0.01 在JavaScript中不准确给出0.07. JavaScript编号以二进制为IEEE-754(IEC 559)表示 双打,分辨率为53位,精度 15-16位数字; 整数长达约9E15都是精确的,但是 小数点很少. 鉴于此,算术是准确的 尽可能,但不再. 在整数上的操作是确切的 真正的结果和所有中间体都是整数 范围. 特别是,非全能结果通常不应是 比较平等; 和非全能计算结果 通常需要舍入; 参见4.6. http://msdn.microsoft.com/library/de...6dbf483b41.asp === 这样的帖子每天自动发送一次. 他们的 目标是回答重复的问题,并将内容提供给 持续评估/改进的社区. 完整 comp.lang.javascript常见问题解答位于http://jibbering.com/faq/index.html. 常见问题解答工人是一群志愿者.

# 回答1

在comp.lang.javascript消息<46 *************************************************************************. DK>,2007年8月15日,星期三23:00:01,常见问题服务器> 发表: 真的; 但是"正好0.07"是模棱两可的. 我们如何最好地陈述 这两个(0.06+0.01).tostring() - " 0.06999999999999999" 然后(0.06+0.01)-0.07!= 0.0 // ?? FAQ更改的最新简短列表有错误. - - (c)约翰·斯托克顿,英国萨里. ?@merlyn.demon.co.uk收费公路v6.05 Mime. Web "或""引用(sonofrfc1036)
# 回答2

J R Stockton博士写道: 好吧,您和政府雇员一样有帮助. - - 约翰·霍斯基
# 回答3

J R Stockton博士说,以下在2007年8月16日下午4:27: 真的; 但是"正好0.07"是模棱两可的. 我们如何最好地陈述 这两个(0.06+0.01).tostring() - " 0.06999999999999999" 然后(0.06+0.01)-0.07!= 0.0 // ?? FAQ更改的最新简短列表有错误. 好吧,您要说的是什么错误还是只是提及它,并且 希望有人乞求您透露您认为错误是什么? - - 兰迪 机会有利于准备好的头脑 comp.lang.javascript常见问题 - http://jibbering.com/faq/index.html JavaScript最佳实践-http://www.javascripttoolbox.com/bestpractices/(_@_ _)

标签: Javascript

添加新评论