Skip to content
Advertisement

MYR Currency Rounding

Looking for help in rounding the money to the nearest 0.05 in js language.

Input & Expected Output:

1.10 => 1.10
1.11 => 1.10 (round down)
1.12 => 1.10 (round down)
1.13 => 1.15 (round up)
1.14 => 1.15 (round up)
1.15 => 1.15
1.16 => 1.15 (round down)
1.17 => 1.15 (round down)
1.18 => 1.20 (round up)
1.19 => 1.20 (round up)

enter image description here

From: https://www.bnm.gov.my/misc/-/asset_publisher/2BOPbOBfILtL/content/frequently-asked-questions-faqs-on-rounding-mechanism

Advertisement

Answer

You could take an offset and take a multiple floored value.

If you need zeroes at the end take .toFixed(2).

const format = f => Math.floor((f + 0.025) * 20) / 20;

console.log([1.10, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19].map(format));
.as-console-wrapper { max-height: 100% !important; top: 0; }
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement