一个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)
墨色风雨
浏览 789回答 2
2回答

守着一只汪

一点都不奇怪啊,这种情况经常发生。 float a = 0.999999999,a为1,但是将a强制转换为整数的时候,结果为0。主要是转整数的时候是截断

绝地无双

浮点数都是约等于,他的精度取决于扩大的倍数。例如1+3=4; 但是0.1+0.2就不等于0.3
打开App,查看更多内容
随时随地看视频慕课网APP