単純なこと |
単純な解決方法がありました。
小数点以下が発生する値は一旦桁上げをしてやり、
整数にした上で整数同士の乗算をすれば、
誤差が発生しないことに気づきました。
こんな感じです。
※変数AをTANKA(単価)、変数BをSURYO(数量)とします。
単価は小数第2位まで、数量は整数のみ入力できます。
//単価を100倍して、小数点以下を切り捨てする。
TANKA = Math.floor(TANKA * 100);
//合計を求め、その値を100で割る
total = (SURYO * TANKA) / 100;
//さらに四捨五入後
total = Math.round(total);
11490*22.15 は 254503.5となり四捨五入で254504となります。
11490*22.101 は 253940.49となり四捨五入で253940となります。
これで完璧ですね。