提供: Japanese Scratch-Wiki

このきじは ひらがなのページがありません。ごめんなさい。編集者向け:作成する
() を四捨五入
() を四捨五入
カテゴリ 演算
タイプ

() を四捨五入 ブロック (演算ブロック値ブロック) は、与えられた数値を四捨五入する(一番近い整数にする)。四捨五入なので、小数点以下が.5以上なら切り上げ、.5未満なら切り捨てとなる。昔は(()を丸める::operators)とされていた。

よくある使用例

数を扱うプロジェクトで、 小数を整数になおして使いたいときに使用される。 よくある使用例は次のとおり:

  • 四捨五入できる計算機をつくる
定義 計算実行
もし <(計算内容) = [足し算]> なら
[答え v] を ((値1) + (値2)) にする
end
もし <(計算内容) = [四捨五入]> なら
[答え v] を ((値) を四捨五入) にする
end
...

このスプライトがクリックされたとき //計算機の「=」ボタンにあたるスプライト
計算実行


  • 2つの数がだいたい同じかどうかを調べる
[近い? v] を <([絶対値 v] (((値1) を四捨五入) - ((値2) を四捨五入))::operators) < (2)> にする//他にも方法は多数存在


  • ゲームなどで、得点を四捨五入して整数にする
[得点 v] を ((得点) を四捨五入) にする


  • 小数点以下の得点を切り捨てる
  [得点 v] を (((得点) - (0.5)) を四捨五入) にする//0.5を引いてから四捨五入すると、切り捨てしたのと同じになる


((2.3840462816) を四捨五入) 回繰り返す
...
end
@greenFlag がクリックされたとき
ずっと
x座標を ((((マウスのx座標) / (25)) を四捨五入) * (25))、y座標を ((((マウスのy座標) / (25)) を四捨五入) * (25)) にする

別のブロックによる表現

詳細は「代用ブロック一覧」を参照

Scratch 2.0で正確に数値を四捨五入するには、 () ( () ) (演算ブロック) の「切り上げ」「切り下げ」を使用すればよい:

([切り下げ v] ((数値) + (0.5))::operators) //四捨五入になる

「切り上げ」「切り捨て」の動作は、() を () で割った余りブロックでも再現できる:

  • 方法1
((数値) - ((数値) を (1) で割った余り)) //切り捨て
((数値) + ((1) - ((数値) を (1) で割った余り))) //切り上げ
  • 方法2
もし <(n) > (0)> なら
[結果 v] を (((n) + (0.5)) - (((n) + (0.5)) を (1) で割った余り)) にする
でなければ
[結果 v] を ((((n) - (0.5)) - (((n) + (0.5)) を (1) で割った余り)) + (1)) にする
end

そのほかに、 () 番目( () )の文字 () と () (演算ブロック) を使う方法もある。

[結果 v] を [ ] にする
[カウンター v] を [0] にする
  <<((カウンター) 番目\((数値)\)の文字) = [.]> または <(カウンター) = ((数値) の長さ)>> まで繰り返す
  [結果 v] を ((結果) と ((カウンター) 番目\((数値)\)の文字)) にする
  [カウンター v] を (1) ずつ変える
end
もし <<((カウンター) 番目\((数値)\)の文字) = [.]> かつ <(((カウンター) 番目\((数値)\)の文字) + (1)) > [4]>> なら
   [結果 v] を (1) ずつ変える
end

提案事項

一部のScratchersから、桁数を指定して四捨五入するブロックがほしいという声が上がっている。これが実現した場合、次のようになるだろう:

((数値) を (桁数) の位で四捨五入する::operators)

上記ブロックの動作は、数値に10の累乗をかけて四捨五入したあと、かけた分の10の累乗で割れば再現できる(10より大きい位で四捨五入するときは、10の累乗で割ってから四捨五入して、その後、最初に割った分の10の累乗をかければよい)。

((数値) * ([10^ v] \((小数点以下の桁数)\::operators) を四捨五入:: operators) / ([10^ v] \((小数点以下の桁数)\)::operators)

次の記述も可能である:

((((四捨五入する数) / (四捨五入する単位)) を四捨五入) * (四捨五入する単位))

また、() ( () ) (演算ブロック) の中に、「四捨五入」を含めるべきだという声もある[1] 。これが実現すれば、次のようなブロックになるだろう:

([四捨五入 v] \(()\):: operators)

参照

  1. scratch:discuss/topic/46994