geta1972TweetPocketCheckshellで普通に計算すると、どうしても整数で返ってくるため、少数値を扱うのに困ってしまいます。浮動小数点を扱えない訳ではなく、特定のお作法を通してやる必要があるという事なんですね。そこで、まあまあ簡単に少数値の計算を行える方法をご紹介します。'2.1'exprコマンドは整数専用なので、上記のように怒られてしまいます。小数点も扱えるbcコマンドというのがあり、数値計算を行うコマンドです。使われることはないのですが、計算式において、色々と便利な機能を持っているので使い慣れておくとかなり得することが多いでしょう。計算結果が1より少ない少数値の場合、.(ピリオド)の前が省略されるようです。.2数値としては、整数の箇所にも0を付けたい場合は、awkを用いて以下のようにすることで対応可能になります。0.2演算子を含めて処理できるbcもいいが、数字を直接操作できるawkも魅力ですね。整数の0までしっかりついてるし・・・orz速度比較エンジニアとして少し気になったので、bcとawkの速度比較を行なってみました。$A解説0〜10000までの数値を累計で足し込んでいく式をbc版とawk版で書いてみました。kakko.sh500500real0m0.026suser0m0.010ssys0m0.012sまとめほんのチョビっとだけbcコマンドの方が早いようですね。驚愕なのは二重括弧のスピード!桁が2つ近くも違う。確かにawkやbcと違って、他のモジュールを読み込んでいないのでネイティブ動作だけだからでしょう。ちなみに、exprを使うのがセオリーのようですが、awkやbcと同じでしょうね。08:19exprよりも((***))二重括弧を使うほうがスピードが早いらしい。http://qiita.com/d_nishiyama85/items/a117d59a663cfcdea5e4ということで、速度比較に加えてみました。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。