jsは小数点のデータを求めて多く小数点の問題を出して記録します.

2311 ワード

>>  300+192.92
<<  492.91999999999996
>>  (300*100+192.92*100)/100
<<  492.92
統計のまとめをする時、ページはプラスして、1山の小数点を展示します.
ネットで調べてみたら、正確なバグのようです.一つはJavaScript浮動小数点を計算するBugです.また、コンピュータが最終的にバイナリ計算に変換することに関係があるという話もありますが、すべての小数点ではこのような現象がありますか?
いっそ自分でそれを整数にして残りを求めます.
オンラインカスタムアルゴリズム:
//       
function addNum (num1, num2) {
 var sq1,sq2,m;
 try {
  sq1 = num1.toString().split(".")[1].length;
 }
 catch (e) {
  sq1 = 0;
 }
 try {
  sq2 = num2.toString().split(".")[1].length;
 }
 catch (e) {
  sq2 = 0;
 }
 m = Math.pow(10,Math.max(sq1, sq2));
 return (num1 * m + num2 * m) / m;
}
alert(addNum(0.1, 0.2));
参照:
http://www.jb51.net/article/73043.htm
転載先:https://www.cnblogs.com/yeyuchangfeng/p/6889867.html