色んなプログラム言語で四捨五入

2021年7月1日

テクノロジー

eyecatch 計算機で使うほうが遥かにはやいのに、わざわざプログラミングして、答えを知ろうとする、ユゲタです。 とある処理(プログラミング)を書いていた時に、四捨五入の処理をしたんですが、その時はjavascriptだったので、 他のプログラム言語での書き方はどーするんだろうな・・・と思って、一括でブログに書きなぐってみました。 まあ、だいたいどの言語でもround命令がそれなんですけどね。

Javascriptで四捨五入

Math.round(1.23); -> 1 Math.round(1.2345 * 100) / 100; -> 1.23 Math.round(12345 / 100) * 100; -> 12300 小数点の計算が苦手なjavascriptですが、できるだけ整数値で処理するようにしましょう。

PHPで四捨五入

round(1.23); > 1 round(1.2345 , 2) -> 1.23 round(123456 , -2) -> 123400 正も負も桁強いてができるんですね。 あまり使う機会はなさそうだけど、知っていると便利に使う機会があるかも・・・

Rubyで四捨五入

1.3.round -> 1 1.5.round -> 2 1.2345.round(2) -> 1.23 12345.round(-2) -> 12300 こちらも正負桁指定があり便利ですね。 しかも少しだけシンプルな書き方で、さすがrubyですね。

Pythonで四捨五入

round(1.2345) -> 1 round(1.2345, 2) -> 1.23 round(12345, -2) -> 12300 可もなく不可もなく、非常にシンプルこの上ないです。 rubyとまったく同じ書き方に、プログラミングにおける、シンプルの極みを見た気がしますね。

Go言語の四捨五入

fmt.Println(math.Round(1.2345)) -> 1 fmt.Println(math.Round(1.2345 * 100) / 100) -> 1.23 fmt.Println(math.Round(12345 / 100) * 100) -> 12300 どちらかというと、javascriptの構文に近い書き方をするんですね。 ライブラリ構成が手にとるようにわかる言語で、慣れると開発高速化する意味がよく分かります。

AWKで四捨五入

echo 1.234 | awk '{split($1, a, "."); print a[1];}' > 1 echo 1.234 | awk '{num=$1;split(num * 100, a, "."); print a[1]/100;}' > 1.23 echo 12345 | awk '{num=$1;split(num / 100, a, "."); print a[1]*100;}' > 12300 めちゃくちゃ変則的に処理をしないといけないのが、このAWK言語。 他のサイトで見たところ、 echo 1.234 | awk '{printf("%d\n", $1 + 0.5)}' こういう書き方だったんですが、これでは、四捨五入した値を変数に代入するとこができないので、プログラムで出力して終わりというスニペットでした。

おわり

いや〜、プログラム言語の傾向がわかるって、よりアルゴリズムに対する関心が深くなる感じがして、ワクワクしますね。 おそらく、「四捨五入 + (プログラム言語名)」で検索して、そこに書かれているコードをコピペして使う人が圧倒的多数だと思いますが、 そういう人の少しでも参考になれば幸いですね。 ちなみに、c言語の四捨五入は、下記のサイトを参照くだされ。 ※環境も含めて書き込むのがめんどくさかったのは、言わないでおきます。 C言語で割り算結果を「切り捨て」「四捨五入」「切り上げ」する方法

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ