EDA365电子论坛网

标题: 为什么 floor((5+0.1)*100) 的结果是509哇? [打印本页]

作者: fenghaili    时间: 2017-2-28 11:07
标题: 为什么 floor((5+0.1)*100) 的结果是509哇?
为什么 floor((5+0.1)*100) 的结果是509哇?

Skill > floor((4+0.1)*100)
409
Skill > floor((5+0.1)*100)
509
Skill > floor((6+0.1)*100)
610
Skill > floor((3+0.1)*100)
310
Skill > floor((2+0.1)*100)
210
Skill > floor((1+0.1)*100)
110
Skill > floor((7+0.1)*100)
710
Skill >


作者: chrysalis    时间: 2017-2-28 17:14
计算机保存小数就有这毛病,你执行下
printf("%.20f", 5.1)
就可以看到,虽然输入的是5.1,但是实际保存的是一个很接近5.1的小数
作者: fenghaili    时间: 2017-3-3 18:35
chrysalis 发表于 2017-2-28 17:14
计算机保存小数就有这毛病,你执行下
printf("%.20f", 5.1)
就可以看到,虽然输入的是5.1,但是实际保存 ...

改成 round 了。现在可以咯。  谢谢

作者: wcjcn    时间: 2017-6-7 22:22
学到了,看来编程必须得小心
作者: wcjcn    时间: 2017-6-7 22:27
floor
floor(
n_number
)
=> x_integer
Description
Returns the largest integer not larger than the given argument




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2