我有一个货币领域的文字输入。
我在字段中输入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对我来说也不起作用。
答案 0 :(得分:0)
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" />
&#13;