在日常开发过程中,由于精度的问题,有时会出现小数点后显示很多补位的0的问题,如下图:
![1710845244-bbef1177bf35d38](https://www.codesou.cn/wp-content/uploads/2024/03/1710845244-bbef1177bf35d38.webp)
今天介绍几种实现去掉小数点末尾多余的0的方法:
方法一、直接加0
因为PHP是弱类型,可以直接进行数学运算转化为数字。
<?php
echo '100.00' + 0 ."<br>";
echo '100.01000' + 0 ."<br>";
echo '100.10000' + 0 ."<br>";
?>
输出:
100
100.01
100.1
方法二、使用floatval()函数
floatval()
函数会返回变量的浮点值
<?php
echo floatval('100.00')."<br>";
echo floatval('100.01000')."<br>";
echo floatval('100.10000')."<br>";
?>
输出:
100
100.01
100.1
方法三、使用rtrim()函数
rtrim() 函数删除字符串末端的指定字符
<?php
echo rtrim(rtrim('100.00', '0'), '.')."<br>";
echo rtrim(rtrim('100.01000', '0'), '.')."<br>";
echo rtrim(rtrim('100.10000', '0'), '.')."<br>";
?>
输出:
100
100.01
100.1
方法四、使用正则表达式
正则表达式说明:/0+$/
去掉末尾多余的0,/[.]$/
去掉末尾的“.”。
<?php
echo preg_replace('/[.]$/', '', preg_replace('/0+$/', '', '100.00'))."<br>";
echo preg_replace('/[.]$/', '', preg_replace('/0+$/', '', '100.1000'))."<br>";
echo preg_replace('/[.]$/', '', preg_replace('/0+$/', '', '100.010203000'))."<br>";
?>
输出结果:
100
100.1
100.010203