一个PHP浮点数转整数的奇怪问题

<?php
$a = round(96800 / 365, 2) * 1000 / 10;
var_dump($a);
$a = intval($a);
var_dump($a);

$b = round(96800 / 365, 2) * 100;
var_dump($b);
$b = intval($b);
var_dump($b);

计算结果:

float(26521)
int(26521)
float(26521)
int(26520)
阅读 2.2k
2 个回答

一点都不奇怪啊,这种情况经常发生。

float a = 0.999999999,a为1,但是将a强制转换为整数的时候,结果为0。主要是转整数的时候是截断

新手上路,请多包涵

浮点数都是约等于,他的精度取决于扩大的倍数。例如1+3=4; 但是0.1+0.2就不等于0.3

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题