PHP intval 转换浮点数精度丢失问题

 
更多

在 PHP 和其他一些语言都会存在这个问题,转换浮点数为整数的时候会出现精度丢失,如下:

<?php 

$n = "19.99"; 
print intval($n * 100); //结果:1998

解决办法:

1. 先转换成字符串再 intval

echo intval(strval($n * 100)); //结果:1999

2. 使用 round 函数替代 floatval

echo round(19.99 * 100);

3. 使用高精度计算函数(推荐)

echo bcmul($amount, 100);
打赏

本文固定链接: https://www.cxy163.net/archives/3103 | 绝缘体

该日志由 绝缘体.. 于 2022年12月22日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: PHP intval 转换浮点数精度丢失问题 | 绝缘体
关键字: , , , ,

PHP intval 转换浮点数精度丢失问题:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter