【解決済み】トリアコンタン様の変数の小数演算プラグインについて

アバター
マニア~ジュ
記事: 45
登録日時: 2019年3月13日(水) 00:31
連絡を取る:

【解決済み】トリアコンタン様の変数の小数演算プラグインについて

投稿記事by マニア~ジュ » 2022年12月25日(日) 20:00

いつも便利なプラグインをありがたく使わせて頂いております。

この度、子供の為に算数のゲームを作成し、トリアコンタン様の変数の小数演算プラグインを使用して、簡単な少数の問題を作成しているのですが、時々少数が0.0000001みたいな感じで凄い細かくなることがあります。

口で説明するのが難しいので、実際に動画をご確認下さい。

https://mega.nz/file/uVgByY6Y#V_F6XmGXk ... jyUAXXkOR0

このように、時々だけ少数がすごい変な風になってしまいます。

どうにかして改善する方法はないでしょうか?

ちなみにプラグインの中身もいじり、
return (parseInt(value, 10) || 0)
の部分を
return (value * 100 / 100)
とかにしてみたけどダメでした。

誰か助けて下さい(>_<)
最後に編集したユーザー マニア~ジュ on 2022年12月26日(月) 08:13 [ 編集 1 回目 ]

名無し蛙
記事: 305
登録日時: 2015年11月23日(月) 02:46

Re: トリアコンタン様の変数の小数演算プラグインについて

投稿記事by 名無し蛙 » 2022年12月25日(日) 21:20

これはJavaScriptというか浮動小数点数の仕様です。
小数の加減算は正確な結果が出ないんですよ。
console.log(2.57 + 6.81);と書くだけでも同じ結果が表示されると思います。

マニア~ジュ さんが書きました:ちなみにプラグインの中身もいじり、
return (parseInt(value, 10) || 0)
の部分を
return (value * 100 / 100)
とかにしてみたけどダメでした。
当該プラグインは見てないんですけどここまでやったのなら

コード: 全て選択

return (Math.round(value * 100) / 100 || 0);
で良いのでは。
Math.round(value)とは四捨五入の事です。value = 123.4なら123になり、123.5なら124に変換されます。
加減算を実行した時点で誤差が発生し得るので、計算前の値をそれぞれ100倍し結果値を1/100に戻すか
あるいは結果値を100倍して四捨五入した後に1/100に戻すかのどちらかでしょうね。
(小数点第二位までを焦点にした場合)
アバター
マニア~ジュ
記事: 45
登録日時: 2019年3月13日(水) 00:31
連絡を取る:

Re: トリアコンタン様の変数の小数演算プラグインについて

投稿記事by マニア~ジュ » 2022年12月26日(月) 08:13

ありがとうございます!
四捨五入のやり方で出来ました(^o^)
早急なお返事感謝ですm(__)m

“MV:質問” へ戻る