您好如何将以下内容舍入到两位小数。
echo
"<div class='quote-results-result'>ex VAT £" .
((($_POST['qtylitres'] * $price ['Price']) + $fuelmargin['margin']) / 1.2) .
"</div>"
我需要围绕一个php新手的价位。
答案 0 :(得分:3)
使用number_format函数,如下所示:
$number = 1234.56789
$new_number = number_format($number, 2, '.', '');
echo $new_number;
Output: 1234.57
答案 1 :(得分:1)
使用php手册中的round功能
echo round(3.4); // 3
echo round(3.5); // 4
echo round(3.6); // 4
echo round(3.6, 0); // 4
echo round(1.95583, 2); // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2); // 5.05
echo round(5.055, 2); // 5.06
答案 2 :(得分:1)
round($VARIABLE_NAME,2);
//这会将变量四舍五入到小数位数
答案 3 :(得分:1)
function roundoff($number,$format)
{
if($number != '') {
$newNumber=$this->exp_to_dec($number);
$num = explode('.',$newNumber);
//pr($num);
if(isset($num[1]) && $num[1] != 0) {
$dec = substr($num[1],0,$format);
} else {
$dec = '00';
}
} else {
$num[0] = 0;
$dec = '00';
}
return $num[0].'.'.$dec;
}
function exp_to_dec($float_str)
//以十进制表示法格式化浮点数字符串,支持有符号浮点数,也支持非标准格式,例如20e 0.2e + 2 { //确保它是一个标准的php浮点字符串(即将0.2e + 2更改为20) // php会在一定范围内自动格式化小数浮点数 $ float_str =(string)((float)($ float_str));
// if there is an E in the float string
if (($pos = strpos ( strtolower ( $float_str ), 'e' )) !== false) {
// get either side of the E, e.g. 1.6E+6 => exp E+6, num 1.6
$exp = substr ( $float_str, $pos + 1 );
$num = substr ( $float_str, 0, $pos );
// strip off num sign, if there is one, and leave it off if its + (not required)
if ((($num_sign = $num [0]) === '+') || ($num_sign === '-'))
$num = substr ( $num, 1 );
else
$num_sign = '';
if ($num_sign === '+')
$num_sign = '';
// strip off exponential sign ('+' or '-' as in 'E+6') if there is one, otherwise throw error, e.g. E+6 => '+'
if ((($exp_sign = $exp [0]) === '+') || ($exp_sign === '-'))
$exp = substr ( $exp, 1 );
else
trigger_error ( "Could not convert exponential notation to decimal notation: invalid float string '$float_str'", E_USER_ERROR );
// get the number of decimal places to the right of the decimal point (or 0 if there is no dec point), e.g., 1.6 => 1
$right_dec_places = (($dec_pos = strpos ( $num, '.' )) === false) ? 0 : strlen ( substr ( $num, $dec_pos + 1 ) );
// get the number of decimal places to the left of the decimal point (or the length of the entire num if there is no dec point), e.g. 1.6 => 1
$left_dec_places = ($dec_pos === false) ? strlen ( $num ) : strlen ( substr ( $num, 0, $dec_pos ) );
// work out number of zeros from exp, exp sign and dec places, e.g. exp 6, exp sign +, dec places 1 => num zeros 5
if ($exp_sign === '+')
$num_zeros = $exp - $right_dec_places;
else
$num_zeros = $exp - $left_dec_places;
// build a string with $num_zeros zeros, e.g. '0' 5 times => '00000'
$zeros = str_pad ( '', $num_zeros, '0' );
// strip decimal from num, e.g. 1.6 => 16
if ($dec_pos !== false)
$num = str_replace ( '.', '', $num );
// if positive exponent, return like 1600000
if ($exp_sign === '+')
return $num_sign . $num . $zeros;
// if negative exponent, return like 0.0000016
else
return $num_sign . '0.' . $zeros . $num;
} // otherwise, assume already in decimal notation and return
else
return $float_str;
}