删除 PHP 中的小数位
Remove a decimal place in PHP
在 PHP 中,我从数据库中获取小数点后 3 位的数字。我想删除最后一个小数点。所以 2.112 将变为 2.11,23.123 将变为 23.12,123.267 将变为 123.26。就像在十进制级别做地板。
你可以使用number_format
,你指定小数位数作为第二个参数。
示例
$number = 534.333;
echo number_format($number,2) // outputs 534.33
或使用round
$number = 549.333;
echo round($number, 2) // outputs 534.33
好像是 substr
最后解决了问题
substr($number,0,-1); // everything besides the last decimal
<?php
$a = floor($a*100)/100;
所以你可以这样做:
<?php
// Note might overflow so need some checks
function round_floor($number, $decimals) {
$n = pow(10, $decimals);
return floor($number * $decimals)/$decimals;
}
echo round_floor(2.344, 2); // Would output 2.34
echo round_floor(2.344, 1); // Would output 2.3
如果数字很大,另一种选择:
<?php
// $decimal should be positive
function round_floor($number, $decimals) {
$a = strstr($number, '.', true);
$b = strstr($number, '.');
return $a . substr($b, 0, $decimal -1);
}
在 PHP 中,我从数据库中获取小数点后 3 位的数字。我想删除最后一个小数点。所以 2.112 将变为 2.11,23.123 将变为 23.12,123.267 将变为 123.26。就像在十进制级别做地板。
你可以使用number_format
,你指定小数位数作为第二个参数。
示例
$number = 534.333;
echo number_format($number,2) // outputs 534.33
或使用round
$number = 549.333;
echo round($number, 2) // outputs 534.33
好像是 substr
最后解决了问题
substr($number,0,-1); // everything besides the last decimal
<?php
$a = floor($a*100)/100;
所以你可以这样做:
<?php
// Note might overflow so need some checks
function round_floor($number, $decimals) {
$n = pow(10, $decimals);
return floor($number * $decimals)/$decimals;
}
echo round_floor(2.344, 2); // Would output 2.34
echo round_floor(2.344, 1); // Would output 2.3
如果数字很大,另一种选择:
<?php
// $decimal should be positive
function round_floor($number, $decimals) {
$a = strstr($number, '.', true);
$b = strstr($number, '.');
return $a . substr($b, 0, $decimal -1);
}