测试PHP的浮点类型,php中浮点数计算问题。

jackxiang 2010-1-20 16:57 | |
php >  $f = 0.58;
php >     var_dump(intval($f * 100));
int(57)

https://www.yidianphp.com/archives/276/
https://www.laruence.com/2013/03/26/2884.html

以下所有代码都是在PHP命令行模式下执行的。
定义浮点数

php > $a = 1.0;
php > var_dump($a);
float(1)

科学计数法定义浮点数
php > $b = 1.1e4;
php > var_dump($b);
float(11000)

php > $c = -1.1e-2;
php > var_dump($c);
float(-0.011)

注意浮点数运算的陷阱。PHP本身不能精确地表示某些浮点数,因此计算结果与预期的不同。切记不要比较浮点数是否相等。
php > var_dump(floor((0.1 + 0.7) * 10));
float(7)
php > var_dump((0.1 + 0.7) * 10 == 8.0);
bool(false)
php > var_dump((int) (0.1 + 0.7) * 10);
int(0)
php > var_dump((int) ((0.1 + 0.7) * 10));
int(7)

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/2594/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2021-11-10 00:53
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]