使用 Javascript 的自定义舍入范围?

Custom Rounding Ranges using Javascript?

我是一家零售商的企业培训师,而不是开发人员,但我需要找出一些编码来完成一个项目。感谢您的帮助!

正在进行一个计算啤酒销售价格的项目,该价格包含成本、加价、押金和折扣。信息通过网络表单在商店级别提交,数据自动填充为 pdf 表单,然后该表单发送给买家。此 javascript 正在写入该 pdf 文件。

我遇到困难的地方是我需要使用特定规则对最终销售价格进行四舍五入以匹配我们的定价结构。规则如下:

所以:

此时我只是迷茫和困惑,我已经超出了我的理解范围。这是我到目前为止的进展:

var flsellround = this.getField("FLSellCalc").value;
var lasttwo = flsellround.slice(0, -2);

...而且我不知道从那里去哪里,或者即使使用 .slice 是正确的下一步。包含需要四舍五入的数字的字段是“FLSellCalc”。

希望一切都有意义。任何人都能够并愿意在这里帮助我吗?我一定会很感激!

这里有一个函数和一个交互式页面来测试它:

function specialRound(n) {
    if (n < 0) return -specialRound(-n);
    let decimals = n % 1;
    return n - decimals + 
         ( decimals < 0.2 ? -0.01
         : decimals < 0.7 ? 1.09
         : 0.99);
}

let output = document.getElementById("output")
let flsellinput = document.getElementById("FLSellCalc");
flsellinput.addEventListener("input", refresh);

function refresh() {
    let n = +flsellinput.value;
    output.textContent = specialRound(n);
}
refresh();
<input id="FLSellCalc" type="number" value="5.19" step="0.01">

<div id="output"></div>