【问题标题】:Javascript Floating Point Multiply by 100 Still has ErrorsJavascript 浮点数乘以 100 仍然有错误
【发布时间】:2017-07-20 17:34:12
【问题描述】:

我有一个货币字段的文本输入。

我在字段中输入 33.91,并在尝试使用“乘以 100”技术时得到以下结果。

var curWth = parseInt($('#trans_withdraw'+index).val()*100);   // 3390
var curWth = parseInt($('#trans_withdraw'+index).val())*100;   // 3300  
var curWth = $('#trans_withdraw'+index).val()*100;             // 3390.9999999...5
var curWth = parseFloat($('#trans_withdraw'+index).val())*100; // 3390.9999999...5
var curWth = parseFloat($('#trans_withdraw'+index).val()*100); // 3390.9999999...5

这些都没有给我 3391。我认为乘以 100 的整个想法是摆脱浮点问题。但如第 3 行所示,当我立即将该值乘以 100 时,仍然会出现浮点错误。

关于使用货币,我还有哪些不明白的地方?

我知道 0.1 不能正确存储为浮点数。但在这种情况下,乘以 100 对我也不起作用。

【问题讨论】:

    标签: javascript floating-point


    【解决方案1】:
    praseFloat to get your decimal value then multiple by 100 to get 3390.9999 then Math.round() to get the value.
    

    var number = parseFloat($('#trans_withdraw').val()).toFixed(2);
    var value = number * 100;
    
    console.log(Math.round(value));
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="text" id="trans_withdraw" value="33.91" />

    【讨论】:

      猜你喜欢
      • 2020-06-07
      • 1970-01-01
      • 1970-01-01
      • 2021-06-15
      • 2014-07-26
      • 2016-11-16
      • 2019-12-14
      • 1970-01-01
      • 2023-03-05
      相关资源
      最近更新 更多