Scratchで少数同士のかけ算をした時の解答の桁数が表示とは全く違う桁数になります。
桁数、と言うよりかは「小数を文字列として見た時の文字数」ですね。 Scratch 3.0はnode.js上のJavaScriptで動いているので、演算はJavaScriptで浮動小数点数を用いた計算になります。0.2 * 0.2
はJavaScriptで計算すると0.04000000000000001
となり、文字列として見ると19文字になります。この文字数が出ているのでしょう。全てが表示されていないのはScratchの表示の仕様によるものだと思います。
試しに0.1
から0.8
まで試してみると、JavaScriptでは以下のようになりました。(paiza.ioで試しました)
JavaScript
1let v = 0;
2v = 0.1 * 0.1;
3console.log(v);
4v = 0.2 * 0.2;
5console.log(v);
6v = 0.3 * 0.3;
7console.log(v);
8v = 0.4 * 0.4;
9console.log(v);
10v = 0.5 * 0.5;
11console.log(v);
12v = 0.6 * 0.6;
13console.log(v);
14v = 0.7 * 0.7;
15console.log(v);
16v = 0.8 * 0.8;
17console.log(v);
0.010000000000000002
0.04000000000000001
0.09
0.16000000000000003
0.25
0.36
0.48999999999999994
0.6400000000000001
「桁数がおかしい」とする原因としては上記で挙げたことがそうですが、肝心の解決方法はScratchの表示の問題もあり、有効で簡単なものは無さそうです。算数の手計算での方法のように、最初は整数で計算し、かけられる数、かける数それぞれの小数点以下の桁数を合算し、その桁数で答えの小数点の位置を調整する、とか。必要に応じて小数点以下の有効桁数を自力で調整することも必要かもしれません。「Scratch 小数 浮動小数点数」などのキーワードでWEB検索もしてみてください。その際は、Scratch 3.0より前のバージョンの情報では役に立たない可能性があるので、併せてご注意ください
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。