我在这个PHP变量中有一个值:
$var='2.533333345';
echo $var;
我想要的是删除5位数后的所有小数点。
现在变量的值将是
$var='2.53333';
echo $var
另外,如果$var ='2.500000000';
,我只需要$var = '2.50';
。我需要在2位小数后删除零。
答案 0 :(得分:0)
你可以使用number_format函数
$var = number_format(2.533333345, 5)
在第一个参数中,将数字传递给第二个小数位数。
这个函数需要更多有用的参数,你可以在这里的php文档中查看:http://php.net/manual/es/function.number-format.php。
答案 1 :(得分:0)
您正在寻找的是number_format
数字格式需要两个参数,第一个是格式化的数字(或包含该数字的变量)。第二个是要输出的小数位数。任何额外的小数都将被删除。
要格式化输出数字,请使用以下内容:
<?php
$var = 2.533333345;
echo number_format($var,5);
?>
此代码将输出: 2.53333
答案 2 :(得分:0)
这是一种方法。
首先,修剪所有尾随零。
$var = rtrim($var, '0');
然后,获取小数点后的字符串。
$decimal = explode('.', $var)[1];
根据小数点后的非零位数,应用不同的数字格式。
if (strlen($decimal) > 2) {
// display five decimal places for numbers without trailing zeroes
$var = number_format((float) $var, 5, '.', '');
} else {
// display two decimal places for numbers with only zeroes past two places
$var = number_format((float) $var, 2, '.', '');
}
答案 3 :(得分:-1)
@Yeldho Paul我已经完成了与此相关的功能。希望这会帮助你。
echo cleanNumber('2.533333345')."<br/>";
echo cleanNumber('2.500000000')."<br/>";
function cleanNumber($val){
$val = floatval($val);
if(strstr($val,".")){
list($before_dot, $after_dot) = explode('.', $val);
if(strlen($after_dot)==1){
$val = $val."0";
}
elseif(strlen($after_dot)>=6){
$val = number_format($val, 5, '.', '');
}
}else{
$val = $val.".00";
}
return $val;
}