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

解決策は、すでに尋ねられた別の質問にあります: Javascript での float 精度の処理

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

Math.ceil に渡す値から .5 を引くとうまくいくはずです

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

Math.ceil は、.000 を超える小数を切り上げます。

したがって、.500 を超える小数のみを丸めるという一般的な丸め動作をシミュレートするには、.5 を減算する必要があります。

于 2013-08-13T20:11:12.733 に答える