Trim 小数部分补零 php
Trim zeros from decimal part php
我的确切要求是,如果该值的小数点后第二位为零,
该值应该只有一位小数。对于其他人,它应该有两位小数。
eg 1. 150.00 to 150.0
eg 2. 150.10 to 150.1
eg 3. 150.76 to 150.76
我需要知道的是是否有任何 PHP 函数可以做到这一点。
echo floatval("150.00")."<br>";
echo floatval("150.10")."<br>";
echo floatval("150.76")."<br>";
结果如下:
150
150.1
150.76
我需要 150.0 而不是 150。我只需要知道是否有任何 php 功能。不然我也能写代码了
您可以编写一个简单的函数来帮助您解决这个问题。像这样的东西可以解决问题:
<?php
function removeTrailingZero($num){
$num = floatval($num);
$pieces = explode(".", $num);
for($i=0; $i<count($pieces); $i++){
if(isset($pieces[1])){
$pieces[1] = preg_replace("#0*$#", "", $pieces[1]);
break;
}else{
$pieces[1] = '0';
break;
}
}
return rtrim(implode(".", $pieces), ".");
//return floatval(rtrim(implode(".", $pieces), "."));
}
var_dump(removeTrailingZero(123.45));
var_dump(removeTrailingZero(67.80));
var_dump(removeTrailingZero(90));
var_dump(removeTrailingZero(100.00000));
// PRODUCES:::
string '123.45' (length=6)
string '67.8' (length=4)
string '90.0' (length=4)
string '100.0' (length=5)
如果最后一个字符为 0,您也可以使用 substr() 函数删除它。下面的代码可能会对您有所帮助
function roundit($string)
{
$string = number_format($string,2);
if (substr($string, -1, 1) == '0')
{
$string = substr($string, 0, -1);
echo $string;
}
else
echo $string;
}
roundit('150.00');
roundit('150.10');
roundit('150.76');
我的确切要求是,如果该值的小数点后第二位为零,
该值应该只有一位小数。对于其他人,它应该有两位小数。
eg 1. 150.00 to 150.0
eg 2. 150.10 to 150.1
eg 3. 150.76 to 150.76
我需要知道的是是否有任何 PHP 函数可以做到这一点。
echo floatval("150.00")."<br>";
echo floatval("150.10")."<br>";
echo floatval("150.76")."<br>";
结果如下:
150
150.1
150.76
我需要 150.0 而不是 150。我只需要知道是否有任何 php 功能。不然我也能写代码了
您可以编写一个简单的函数来帮助您解决这个问题。像这样的东西可以解决问题:
<?php
function removeTrailingZero($num){
$num = floatval($num);
$pieces = explode(".", $num);
for($i=0; $i<count($pieces); $i++){
if(isset($pieces[1])){
$pieces[1] = preg_replace("#0*$#", "", $pieces[1]);
break;
}else{
$pieces[1] = '0';
break;
}
}
return rtrim(implode(".", $pieces), ".");
//return floatval(rtrim(implode(".", $pieces), "."));
}
var_dump(removeTrailingZero(123.45));
var_dump(removeTrailingZero(67.80));
var_dump(removeTrailingZero(90));
var_dump(removeTrailingZero(100.00000));
// PRODUCES:::
string '123.45' (length=6)
string '67.8' (length=4)
string '90.0' (length=4)
string '100.0' (length=5)
如果最后一个字符为 0,您也可以使用 substr() 函数删除它。下面的代码可能会对您有所帮助
function roundit($string)
{
$string = number_format($string,2);
if (substr($string, -1, 1) == '0')
{
$string = substr($string, 0, -1);
echo $string;
}
else
echo $string;
}
roundit('150.00');
roundit('150.10');
roundit('150.76');