舍入机制最接近0.05

Shi*_*iro 9 php rounding

我想通过使用php4,5.2及以下(而不是5.3)来解决舍入机制.目前我正在进行0.05舍入,类似这样的页面:

http://www.bnm.gov.my/index.php?ch=209&pg=657&ac=568

before rounding | after rounding

          89.90 | 89.90

          89.91 | 89.90

          89.92 | 89.90

          89.93 | 89.95

          89.94 | 89.95

          89.95 | 89.95

          89.96 | 89.95

          89.97 | 89.95

          89.98 | 90.00

          89.99 | 90.00
Run Code Online (Sandbox Code Playgroud)

我尝试使用字符串将其拆分并手动添加,但不是一个很好的解决方案,希望在这里可以找到解决它的人.

mau*_*ris 14

使用此功能

function rndfunc($x){
  return round($x * 2, 1) / 2;
}
Run Code Online (Sandbox Code Playgroud)

  • 然后你可以简单地用number_format()格式化它 (2认同)
  • sprintf('%0.2f',rndfunc($ x)); (2认同)

Cra*_*een 5

从概念上讲,程序可以如下:

  1. 除以0.05
    • 或乘以(1/0.05)
  2. 舍入到最接近的整数
  3. 乘以0.05