今天群里遇见一个新手问题,此前并未发现该类问题 然后经过测试存在的精度问题 就是当你数据格式为float的时候想转换单位比如金额为19.90希望转为结果1990的时候一般思路就是*100后转为int格式即可 但是实际操作中会丢失精度查阅了资料后发现是精度计算问题所以可以按照以下方法进行修复

官方文档推荐的方案
https://www.php.net/manual/zh/function.intval.php

<?php
//错误方法

 $a=19.90;//float格式
 
 $b=$a*100;//得到的结果为1990.0
 
 $c=(int)$b;//得到错误结果1989 
 
 //正确方法为
 
 $ok=intval(round(floatval($a) * 100));//得到1990
 
?>

本文地址: http://www.18ai.top/read_1.html

版权声明