我有一个号码,我想在我的数据库中查找。数据库间隔如下:
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 :(得分:1)
使用圆形和一些数学。
round(($number-0.02)/0.04)*0.04+0.02
或如果0.02班次错误
round($number/0.04)*0.04
答案 1 :(得分:1)
如果你需要使它达到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;
}