我有一个要在数据库中查找的数字。数据库间隔如下:
0,78
0,82
0,86
0,90
0,94
0,98
1,02
1,06
1,10
1,14
所以这个数字一直加上0.04。
我想查找的数字是这样的:
0,77778
0.91666
1,14286
1,50000
1,76923
如何将其四舍五入到最接近的0.04?
所以它们看起来是这样的:
0,78
0.90
1,14
1,50
1,78
如果您需要将其精确到0.04的倍数,这里有一个函数可以完成这项工作:
function round_to_0_04($round)
{
$int_val = round($round * 100);
$rest = $int_val % 4;
$rounded_val = $int_val - $rest;
return $rounded_val /100;
}
如果数字需要不均匀(从0.02而不是0开始),您应该按如下方式使用它:
$number = ...;
round_to_0_04($number - 0.02) + 0.02;
或者只需如下修改功能:
function round_to_0_04_uneven($round)
{
$round -= 0.02;
$int_val = round($round * 100);
$rest = $int_val % 4;
$rounded_val = $int_val - $rest;
return $rounded_val /100 + 0.02;
}
使用圆角和一些数学运算。
round(($number-0.02)/0.04)*0.04+0.02
或者如果0.02偏移是错误的
round($number/0.04)*0.04