中华农历论坛知识讨论区历法知识 → [讨论]JavaScript的算术运算还真有点奇怪


  共有20460人关注过本帖树形打印

主题:[讨论]JavaScript的算术运算还真有点奇怪

帅哥哟,离线,有人找我吗?
浪-淘-沙
  11楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:2068 积分:4263 威望:5 精华:4 注册:2008/11/13 21:03:00
  发帖心情 Post By:2011/6/19 22:44:00

如果你想要更多位的中间过程量的有效数字,应当在程序的计算流程上进行改进。

一般为了保留更多的有效数字,要求避免“大数”与“小数”直接相加、减。

 

比如1.234567890123456+0.0000000000000000123456-1.234567890123456

差不多等于0,有效数字位数很少。

 

但如果改为:

A=1.234567890123456-1.234567890123456

B=A+0.0000000000000000123456

则B的结果,有效位数有6位。

 

天文计算时,经常会遇到“大”数与“小”数的相加减。所以程序设计时一定要掌握一个技巧,尽量避免开。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
秦汉昌
  12楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
  发帖心情 Post By:2011/6/19 23:37:00

以下是引用浪-淘-沙在2011-6-19 22:44:00的发言:

如果你想要更多位的中间过程量的有效数字,应当在程序的计算流程上进行改进。

一般为了保留更多的有效数字,要求避免“大数”与“小数”直接相加、减。

 

比如1.234567890123456+0.0000000000000000123456-1.234567890123456

差不多等于0,有效数字位数很少。

 

但如果改为:

A=1.234567890123456-1.234567890123456

B=A+0.0000000000000000123456

则B的结果,有效位数有6位。

 

天文计算时,经常会遇到“大”数与“小”数的相加减。所以程序设计时一定要掌握一个技巧,尽量避免开。

呵呵,谢谢,在以后的调试中,我尽量尝试您 的方法来改进


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
总数 12 上一页 1 2

返回版面帖子列表

[讨论]JavaScript的算术运算还真有点奇怪








签名