如何在PHP中汇总值?
我有这样一个价值观:如何在PHP中汇总值?,php,roundup,Php,Roundup,我有这样一个价值观: $value = 2.3333333333; $value = 2.35; 我想把这个值四舍五入如下: $value = 2.3333333333; $value = 2.35; 我已经试过round、ceil等,但结果不是我所期望的 请任何人帮忙 谢谢试试: $value = 2.3333333333; echo number_format($value, 2); 从字面上理解你的问题,这样做可以: $value = (round($original_value
$value = 2.3333333333;
$value = 2.35;
我想把这个值四舍五入如下:
$value = 2.3333333333;
$value = 2.35;
我已经试过round、ceil等,但结果不是我所期望的
请任何人帮忙
谢谢试试:
$value = 2.3333333333;
echo number_format($value, 2);
从字面上理解你的问题,这样做可以:
$value = (round($original_value / 0.05, 0)) * 0.05
i、 e.将四舍五入至最接近的0.05
如果出于某种原因,您希望始终四舍五入到0.05,请使用
$value = (round(($original_value + 0.025) / 0.05, 0)) * 0.05
你有三种可能:圆形(),地板(),天花板() 给你:
$step = 2; // number of step 3th digit
$nbr = round(2.333333333 * $step, 1) / $step; // 2.35
$step = 4; // number of step on 3th digit
$nbr = round(2.333333333 * $step, 1) / $step; // 2.325
您可以使用以下代码:
$value = 2.3333333333;
$value = round ( $value, 2, PHP_ROUND_HALF_UP);
最佳文档位于补充函数中,可向上/向下舍入到任意数量的小数:
/**
* Round up to specified number of decimal places
* @param float $float The number to round up
* @param int $dec How many decimals
*/
function roundup($float, $dec = 2){
if ($dec == 0) {
if ($float < 0) {
return floor($float);
} else {
return ceil($float);
}
} else {
$d = pow(10, $dec);
if ($float < 0) {
return floor($float * $d) / $d;
} else {
return ceil($float * $d) / $d;
}
}
}
/**
* Round down to specified number of decimal places
* @param float $float The number to round down
* @param int $dec How many decimals
*/
function rounddown($float, $dec = 2){
if ($dec == 0) {
if ($float < 0) {
return ceil($float);
} else {
return floor($float);
}
} else {
$d = pow(10, $dec);
if ($float < 0) {
return ceil($float * $d) / $d;
} else {
return floor($float * $d) / $d;
}
}
}
/**
*四舍五入到指定的小数位数
*@param float$float要四舍五入的数字
*@param int$dec小数位数是多少
*/
函数汇总($float,$dec=2){
如果($dec==0){
如果($float<0){
返回地板(浮动);
}否则{
返回ceil(浮动);
}
}否则{
$d=战俘(10,$12);
如果($float<0){
返回地板($float*$d)/$d;
}否则{
返回ceil($float*$d)/$d;
}
}
}
/**
*四舍五入到指定的小数位数
*@param float$float要向下舍入的数字
*@param int$dec小数位数是多少
*/
函数取整($float,$dec=2){
如果($dec==0){
如果($float<0){
返回ceil(浮动);
}否则{
返回地板(浮动);
}
}否则{
$d=战俘(10,$12);
如果($float<0){
返回ceil($float*$d)/$d;
}否则{
返回地板($float*$d)/$d;
}
}
}
请问您为什么要将其四舍五入到2.35?标准是什么?最接近0.05?@AlexGittemeier-不,它不起作用,它返回2.33请查看以下用户的一些代码片段:。请注意,OP希望四舍五入,而不是精确到第100位。@Alex Gittemeier-+1,确实,总是阅读(并在必要时澄清)规范。仍然相同的结果->2.33这很好,但您能将其用于2.11111111到2.15,2.22222到2.25的范围吗,谢谢you@Rio爱德华多,你是说“总是四舍五入到0.05”?是:)但不到2.66666,等仅在2.111111范围内。444444@Rio爱德华多,我为“永远”总结添加了另一个公式。如果这只适用于某些数字范围,那么最好使用If语句。
/**
* Round up to specified number of decimal places
* @param float $float The number to round up
* @param int $dec How many decimals
*/
function roundup($float, $dec = 2){
if ($dec == 0) {
if ($float < 0) {
return floor($float);
} else {
return ceil($float);
}
} else {
$d = pow(10, $dec);
if ($float < 0) {
return floor($float * $d) / $d;
} else {
return ceil($float * $d) / $d;
}
}
}
/**
* Round down to specified number of decimal places
* @param float $float The number to round down
* @param int $dec How many decimals
*/
function rounddown($float, $dec = 2){
if ($dec == 0) {
if ($float < 0) {
return ceil($float);
} else {
return floor($float);
}
} else {
$d = pow(10, $dec);
if ($float < 0) {
return ceil($float * $d) / $d;
} else {
return floor($float * $d) / $d;
}
}
}