• 締切済み

少数点以下の桁数について

printした時の表示を0.33とか0.333とか小数点以下の桁数表示を コントロールしたいのですが、どなたか教えて下さい。 ---------------------- $a=10/3; print $a;

  • Perl
  • 回答数3
  • ありがとう数0

みんなの回答

  • W_H
  • ベストアンサー率47% (21/44)
回答No.3

一応、個人的にはprintfをお勧めしますが、四捨五入とかが絡んできたら、自分で関数を作らなくてはいけません。 四捨五入関係の処理はしてませんが、自作関数でprintfと同じことをやってみます。 $a=10/3; $a=&num($a,3);#(数字,小数点以下の桁数) print $a; sub num{#数字調整関数 my($n,$f)=@_; $n=int($n*(10**$f)); $n/=(10**$f); return $n; } 考え方は、10/3=3.333333……に、10の[桁]乗します。例えば三桁なら、[10]の[3]乗になるので、[1000]をかけ、3333.333……とします。 そこでint関数で、小数点以下を切捨て(四捨五入ではない)3333として、最後に掛けた数(10の3乗)で割ってやると、3.333となります。 四捨五入が入ると、もう少しややこしくなりますが、そこら辺はほっておきます。面倒くさいので。 他にもいろいろやり方がありますが、まずはprintfでやって、余裕が出てきたら、自作関数にも挑戦してみてください。ちなみに、printfも確か必要じゃない数字は切り捨てです。切り上げや四捨五入がしたい場合は、自作しましょう。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

printf で書式指定というのはいけないのですか? use strict; use warnings; my $var = 10/3; print $var, "\n"; $# = '%.3f'; print $var, "\n"; 実行結果: Use of $# is deprecated at moge.pl line 6. 3.33333333333333 3.333 できますが、メッセージにある通り非推奨な機能です。

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

$a=10/3; printf("%.2f\n", $a); printf("%.3f\n", $a); 以下,http://www.rfs.jp/sb/perl/05/printf.html より抜粋↓ %n.mf  小数点付き数値の10進展開。nは文字列の長さ、mは少数点以下の桁数を指定。

関連するQ&A

  • Accessで小数点以下の桁数を・・?

    教えてください。 Accessで小数点以下の桁数を表示したいのですが、プロパティで小数点以下の桁数を表示することができるのですが、実際に入力すると値が四捨五入されてしまい小数点以下の桁数を入力することができません。どうしたらよいのでしょうか?

  • テキストボックスの少数点以下表示について

    お願いします。 アクセス2002を使っています。 フォームのテキストボックスの数値表示についてお尋ねします。 たとえば「1.75」という小数点以下2桁まで表示させたいのですが、コントロールで書式を「標準」に、小数点以下表示桁数を「2」と指定しても結果は「2.00」と表示されます。 入力した1.75をそのまま1.75で表示させるにはどうすればいいのでしょうか。 宜しくお願いします。

  • 小数点以下桁数が最大の値に小数点以下桁数を揃えるにはどうしてますか

    小数点以下桁数が最大の値に小数点以下桁数を揃えるにはどうしてますか 例えばSELECT文で取ってきた値が、 0.05と0.1だった場合は、0.1を0.10としたいです。 0.5と2だった場合は、2を2.0としたいです。 1と2だった場合は、1も2も、そのままとしたいです。

    • ベストアンサー
    • MySQL
  • 小数点以下の桁数

    Excelの関数で指定したセルの小数点以下の桁数を返すようなものはありますか?例えば、「1.12345」だったら「5」と返すような・・・。

  • 小数点以下の数字の桁数表示について

    VB6.0で小数点以下の数値が0の場合でも指定した桁数で0も表示するにはどのようにしたらよいですか? 例えば、四捨五入のROUND(0.195000,4)のとき返ってくる数値が「0.195」となり最後の0が表示されません。(以下は4桁表示したいのに) (小数点以下第5位が5なら切り上げで最後に1が表示されますが) エクセルだとセルの書式設定で表示桁数を設定するだけだったのですが。 FIXED関数、TEXT関数はVB6.0では使えないのですよね? VB6.0に詳しい方よろしくお願いします。お手数です。

  • EXCEL 小数点以下の表示桁数

    下記のような表があります   A   B    C  数値1 数値2 MAX(A:B)  0.20  0.98  0.20  0.38  1.7   1.7 というように、A,Bの値を比較して大きいほうをC列に表示させるのですが、小数以下の桁数をA,Bと同じにしたいのです。 小数第2位が「0」なら0、表示が1位までなら1位という感じです。 条件によって桁数を変化させることは出来るのでしょうか。

  • printfの小数点以下の表示桁数につい

    Java超初心者です。宜しくお願い致します。 System.out.printf("%8f\n",15.8); は8桁表示のはずですが、 実行すると、 15.800000 と、いう風に9桁になります。 詳しい方はきっと当たり前と思うと思いますが、 小数点以下の桁数がどういう基準で決められるのか、 つまりゼロ(0)がいくつ並ぶか、というのがよくわかりません。 %12f に変更すると、    15.800000 と、左側にスペースが3つ入ります。 12桁と指定しても、小数点以下のゼロが5つだから、左にスペースが3つ入るわけですよね。 結局、小数点以下の桁数を指定していないのに勝手にゼロが並ぶので、 表示は実行してみるまでどうなるか解らない、という状況です。 規則というか、ルールを解りやすく教えて頂けると嬉しく思います。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • 小数点付の数字の桁数を揃える

    >10 を $suu=sprintf("%03d",$suu); このようにして3桁に揃えると >010 ですが、小数ありの数字を上の方法で桁数を揃えると >10.5 だった場合、小数点以下が無視され、 >010 と表示されます。それを、 >010.5 のように小数つきで桁数を揃えたいのですが、 どうすればいいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • 有効桁数について

    たとえば整数の3桁割る4桁の場合の数値についてです。 レポートの表に数値を記入するとき,たとえば0.921,0.866,0.995,1.331と計算結果が続くとき 小数点以下の桁数を同じにしてはダメですか? やはり1.331は1.33と記入しないとダメなのでしょうか?私は小数点以下の桁数をそろえて記入したところその理由を問われたのですが,答えられませんでした.小数点以下の桁数をそをえてもいい時のわけを教えてください.   大変困ってます!!!

  • EXCEL 小数点以下の桁数を条件によって変えるには

    G列の書式設定を数値、小数点以下0桁に設定してあります D列にある特定の文字が入力された時だけ、小数点以下の桁数を1桁にしたいのですが、どのようにすればよいでしょうか? それと小数点以下0桁、1桁の数字の桁位置をそろえることはできますか

専門家に質問してみよう