使用Javascript自定义舍入范围?



我是一家零售商的企业培训师,不是开发人员,但我需要弄清楚一些代码来完成一个项目。谢谢你的帮助!

工作项目计算销售啤酒的价格在成本数据,标记,存款,和折扣。提交信息存储层面上通过一个web表单,数据填写在一个pdf表单,表单然后寄给买方。这个javascript被写入pdf文件。

我被困的地方是我需要使用特定的规则来匹配我们的定价结构来四舍五入最终的销售价格。规则如下:

  • 如果最后两位数字在00 ~ 19之间,则舍入到最接近的99。
  • 如果最后两位数字在20到69之间,四舍五入到最接近的09。
  • 如果最后两位是70 ~ 99,则四舍五入为99。

:

  • 5.19需要四舍五入到4.99
  • 21.20需要舍入到22.09。
  • 102.76需要舍入到102.99

我只是迷失和困惑在这一点上,我已经从我的深度。这里是我到目前为止的内容:

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>