我的确切要求是,如果该值的第二个小数为零,
该值应该只有一个小数。对于其他人,它应该有两个小数。
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功能。否则我将能够编写代码。
答案 0 :(得分:1)
你可以使用substr()函数删除最后一个char,如果它是0.可能是下面的代码会帮你
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');
答案 1 :(得分:0)
您可以编写一个简单的功能来帮助您解决这个问题。这样的事情可以解决问题:
<?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)