js number类型转换怪异问题

偏锋书生 2010-08-17 03:29:50
var value = new Number("1111111111111111.3333");
它的值变为:1111111111111111.4
var value = new Number("9999999999999999.9999");
变为: 10000000000000000

这是为什么啊?有什么解决的办法吗?
...全文
783 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangweiwei130 2010-08-21
  • 打赏
  • 举报
回复
js是弱类型语言,浮点数计算就会出现这样的问题
gengchenhui 2010-08-20
  • 打赏
  • 举报
回复
内存再大,一个字节还是8位,就算你开发个语言,让浮点数占10个字节,还是不能表示无限小数。
王集鹄 2010-08-20
  • 打赏
  • 举报
回复
精度问题,有限的内存只能表示有限的数值。

再大的内存或者硬盘也表示不了无限的小数
rinoya111 2010-08-20
  • 打赏
  • 举报
回复
计算机自动计算精度的问题
my_nature_2 2010-08-18
  • 打赏
  • 举报
回复
1111111111111111.3333= 1111111111111111+3333/10000
wangxianshou 2010-08-18
  • 打赏
  • 举报
回复
以小数点为界,分为两个整数部分,处理完再合起来,我是这么干的
不过即使这样,还是有范围的
atoat 2010-08-17
  • 打赏
  • 举报
回复
这是由于计算机计算浮点数因为精度的问题,导致的。

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧