为了账号安全,请及时绑定邮箱和手机立即绑定

document.write(Math.floor(a)+"<br/>")

 document.write(Math.floor(-8.000000000000000000000000000001)+"<br/>")的结果是-8为什么不是-9

正在回答

4 回答

小数位超出范围了,你可以自己试一下打印一个 10/3,看看小数位后最多几位,我看下来是16位,超出的部分被截断了,所以,你最后的 1 系统并没有读到,等同于 -8 。

0 回复 有任何疑惑可以回复我~
#1

小菜鸟飞 提问者

非常感谢!
2016-10-12 回复 有任何疑惑可以回复我~

向下取值哦,负数和正数相反

例子

8.99 取 8

-8.99 取 -9

你可以这么理解 取得数比先前小

0 回复 有任何疑惑可以回复我~
#1

小菜鸟飞 提问者

是的 本来应该是-9可是 document.write(Math.floor(-8.000000000000000000000000000001)+"<br/>")是-8
2016-08-04 回复 有任何疑惑可以回复我~
#2

繁华终落尽 回复 小菜鸟飞 提问者

超过floor字符长度么,你是试试double
2016-08-05 回复 有任何疑惑可以回复我~

后++,先用后+

0 回复 有任何疑惑可以回复我~

-8比-8.000000000000000000000000000001大,-9比-8.000000000000000000000000000001小,由于floor是向下取整,所以是取小的-9。

0 回复 有任何疑惑可以回复我~
#1

小菜鸟飞 提问者

document.write(Math.floor(-8.1)+"<br/>")的值是-9 document.write(Math.floor(-8.000000000000000000000000000001)+"<br/>")的值是-8
2016-08-04 回复 有任何疑惑可以回复我~
#2

qq_礼葬花_03334301 回复 小菜鸟飞 提问者

var a=-8.1; var b=-8.000000000000000000000000000001; document.write(Math.floor(a)+"<br/>"); document.write(Math.floor(b)+"<br/>"); document.write((a+b));得到结果是-16.1
2016-08-04 回复 有任何疑惑可以回复我~
#3

qq_礼葬花_03334301 回复 小菜鸟飞 提问者

可以看出-8.0000000...001被自动取整了
2016-08-04 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

document.write(Math.floor(a)+"<br/>")

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信