在日常开发过程中,由于精度的问题,有时会出现小数点后显示很多补位的0的问题,如下图:

今天介绍几种实现去掉小数点末尾多余的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