2017-07-20 12 views
-1

私はmoneyフィールドのテキスト入力を持っています。Javascript浮動小数点100を乗算してもエラーが発生する

フィールドに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
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" />

関連する問題