0

我正在尝试在 JS 中舍入一个值,但我没有得到舍入值,这就是我所拥有的:

  $(document).on("click", ".open-AddBookDialog", function () {
              var agentPercentage = parseFloat($('#<%=ddlSplitPerc.ClientID%>').val()).toFixed(2);
              var percMod = 1.0 - agentPercentage;
              percMod = Math.ceil(percMod * 100) / 100;
              var dropdownAgentPerc = $('#<%=ddlPercSplitAgent.ClientID %>');
              dropdownAgentPerc.val(percMod);
             dropdownAgentPerc.change();           
             $('#AddNewSplitAgentLife').modal('show');
          });

例如,agentPercentage 是 0.7,当我减去 1 - 0.7 时,我得到这个值:

0.30000000000000004

你觉得我应该改变什么?我也尝试了这个Math.cell例子,但结果是 0.31。

4

2 回答 2

3

解决方案是在另一个已经问过的问题中:Dealing with float precision in Javascript

(Math.floor(y/x) * x).toFixed(2);
于 2013-08-13T19:52:42.713 回答
0

如果从传递给 Math.ceil 的值中减去 0.5,它应该可以工作

percMod = Math.ceil((percMod * 100) -.5 )/ 100;

Math.ceil 将对任何大于 .000 的小数进行四舍五入

因此,要模拟仅将小数舍入高于 0.500 的典型舍入行为,您应该减去 0.5

于 2013-08-13T20:11:12.733 回答