• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

intval碰到小数为什么会减1

php 搞代码 3年前 (2022-01-24) 21次浏览 已收录 0个评论

intval遇到小数为什么会减1
$a = 2.3;
echo ($a*100);//输出230
echo intval($a*100);//输出229
刚开始用的时候我都凌乱了,不知道这是怎么回事
查了好多资料才找到答案,如下
我们看到的:2.3在机器中实际是这样的:2.299999999…具体为什么我也不知道
所以2.3*100在机器中实际是2.299999..*100=229.99…
然后intval作用于他,省略了小数部分,于是就成了229,而不是230
但是intval(1.0)仍然是1,原因是1.0在机器中也是1.0,而不是0.99999…
这种机制应该只会在小数点后发挥作用吧

求大神从根源解释下这个神奇的问题
——解决方案——————–
printf(‘%.16f’, 2./本文来源gaodai#ma#com搞*!代#%^码网%搞代gaodaima码3); //2.2999999999999998

你在学习计算机基础知识时,没有看二进制小数的章节吗?


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:intval碰到小数为什么会减1
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址