PHP去掉小数点后面末尾的0,并保留非零
PHP编程中,去除小数点后面的0的4个方法
打印出
float(12234300)
float(122.343)
打印出:
string(6) "122500"
string(9) "1225.2345"
打印出:
string(6) "125000"
string(6) "125.65"
打印出:
int(12234300)
float(122.343)
打印出:
string(5) "12565"
方法一: floatval
floatval — 获取变量的浮点值,并返回 float 类型
$var = '12234300';
$var2 = '122.34300';
var_dump(floatval ($var));
var_dump(floatval ($var2));
方法二: 使用正则
$price = 122500;
$float = 1225.2345000;
var_dump(str_replace("0+?$", "", $price));
var_dump(str_replace("0+?$", "", $float ));
方法三: 使用trim
使用这个方法需要先转float类型,例如将100先转成100.0000再去除右边的点和0
$price = 125000;
$float = 125.650000;
var_dump(trim(rtrim(sprintf("%.4f", $price ), '0'),'.'));
var_dump(trim(rtrim(sprintf("%.4f", $float ), '0'),'.'));
方法四: 使用运算
因为PHP是弱类型,浮点数在数学运算后,会去除多余的0再返回,拿到的浮点数就是没有0了。var_dump( 12234300 + 0 );
var_dump( 122.34300 + 0 );
网上看到的一些方法,实际测试是有问题的。。
错误一:
$float = 12565000.0;
var_dump(trim(rtrim($float, '0'),'.'));