Java出力桁数調整

このQ&Aのポイント
  • JavaのSystem.out.printでdouble型の数字の桁数を調整する方法を教えてください。
  • 具体的なやり方を教えてください。
  • 大きな数の桁数調整についても教えてください。
回答を見る
  • ベストアンサー

Java 出力 桁数調整

Java初心者です。 JAVAのSytem.out.printの出力の際、 double型の数字の桁数(小数点以下何桁まで表示するか)を調整したいのですが、どのようにやればいいのかわかりません。 教えてください。 あまり詳しくないのでライブラリ等から探す探し方ではなく、 具体的なやりかたを教えてください。 <for emaxple> class warizan{ public static void main(String[] args){ double i=0.0; i = 1/3; System.out.println(i); } } をコンパイルして実行すると出力が 0.33333333333333333333333... となると思うんですが、 0.33 など、小数点以下二桁で出力する方法。 また、よければ大きい数字の桁数調整のやり方も 教えていただけるとうれしいです。 123456789 → 123000000

  • Java
  • 回答数1
  • ありがとう数10

質問者が選んだベストアンサー

  • ベストアンサー
  • ggaogg
  • ベストアンサー率43% (38/88)
回答No.1

こんな感じです。 フォーマット関係は、java.textパッケージを使用します。 double d = (double)1/(double)3; NumberFormat format = NumberFormat.getInstance(); format.setMaximumFractionDigits(2); System.out.println(d); System.out.println(format.format(d));

kamema
質問者

お礼

ggaoggさん 知識の提供ありがとうございます。 大学生なんですが、明後日までにプログラム書き終わりそうです。 提出期限間に合いそうです。

関連するQ&A

  • 有効桁数について

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

  • Javaの文字列比較について

    学校のJavaの課題で分からない問題がありました。習い始めたばかりなので全然うまくいきません。問題は、下のようです。 「円周率(3.14159265358979323846) の小数点以下の数値を一個ずつ入力していき、間違えたところでそこまでの桁数を表示するプログラムを作成しなさい。最大で小数点第20桁までとする。」です。 一応自分なりに考えてみたソースコードがこれです。 <ソースコード> import java.io.*; class Kadai0303 { public static void main(String[] args) throws IOException { String[] pied = {"14159265358979323846"}; int i; BufferedReader br= new BufferedReader(new InputStreamReader(System.in)); for(i=0;i<20;i++){ String str= br.readLine(); if(str.equals(pied)){ System.out.println(str[i]); } else{ break; } } System.out.println(i+1 + "桁まで正解"); } } おそらく文法も正しく書かれていないと思うので、馬鹿じゃないかと思うかもしれませんが、自分なりに考えてみたので、ぜひわかる方がいれば、間違っているところとどのように直したらいいかをサポートしてくださるとうれしいです。 P.S すいません。変なソースコードで。

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

    Java内でEVALを使用する必要があり、その中で四則演算をするプログラムを書いています。少数点以下の少数桁数6桁までを正確に計算したいのですが、試してみたところたったの小数点1桁でも以下のように計算結果が合わず、困っています。 public class EvalTest { public static void main (String args[]) { javax.script.ScriptEngineManager manager = null; javax.script.ScriptEngine engine = null; if(engine == null) { manager = new javax.script.ScriptEngineManager(); engine = manager.getEngineByName("js"); } String str = ""; try { str = engine.eval("100.1*100.1").toString(); } catch (javax.script.ScriptException e) { e.printStackTrace(); } System.out.println(str); } } 出力結果:10020.009999999998 期待する結果:10020.01 なんとかEVALでもう少し正確な値を計算することは出来ないでしょうか。

    • ベストアンサー
    • Java
  • 【Java】数字の判定、Stringへの型変換

    コマンドライン引数を渡して(桁数は様々)、 渡ってきた値が数字のみの場合は値をそのまま出力、 数字のみでなければ1文字ずつ縦に出力するプログラムを作りたいです。 Exceptionを発生させたり正規表現で判定するのではなく、 isNumericを使いたいのですが、型が違うので使えません。 1文字ずつ出力するのはcharAtかなと思ったのですがこれも型が違う。 型変換するにもどこですればいいのか分からず… どこを変えれば良いのか教えて下さい。 public class Test1 { public static void main(String[] args) { if(StringUtils.isNumeric(args)){ System.out.println(args); }else{ for(int i = 0; i<args.length; i++){ System.out.println(args.charAt()); } } } }

    • ベストアンサー
    • Java
  • ファイルへの出力

    例えば、以下のようなプログラムがあります。 public class rei{ public static void main(String args[]){ for(int i=0;i<100;i++){ System.out.println(i); } } } ここで、iの値をエクセルファイルに出力することはできるのでしょうか?できれば具体的に教えてください。よろしくお願いします。

  • javaでのプログラミング

    javaで平均と分散を求めるプログラムを作っているのですが、 分散の出力がうまくいきません。(出力が0になってしまいます) プログラミングとしておかしいところがあれば、教えていただけませんでしょうか 以下プログラムソースです。 public class test{ public static void main(String[] args){ int i,rand; double ave=0 double bun=0 double sum1=0 double sum2=0; int [] data = new int[10]; rand=(int)(Math.random()*100+0.5); for(i=0;i<10;i++){ data[i]=rand; } for(i=0;i<10;i++){ sum1+=data[i]; sum2+=data[i]*data[i]; } ave=sum1/10; bun=(sum2/10) - (ave*ave); System.out.println(ave); System.out.println(bun); } }

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

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

    • ベストアンサー
    • Perl
  • javaのdoubleでの計算による誤差

    宜しくお願いします。 割り算でなくても、足し算の小数点計算で誤差がでます。 public class keisan { public static void main(String[] args) { double a1 = 12.3; double b1 = 45.6; System.out.println(a1 + b1); } } 結果が 57.900000000000006 となります。 きっちり57.9とならないのはなぜでしょう? 他の数字でも数が小数点以下でブレます。 原因に何が考えられるでしょうか? OSはWindowsXP pro ver.2002 SP3 32bit jdk 1.6.0_17 eclipseは Eclipse Platform Version: 3.5.2.R35x_v20100210-0800-9hEiFzmFst-TiEn9hNYgDWg1XN8ulH_JvCNGB Build id: M20100211-1343 を使っています。

    • ベストアンサー
    • Java
  • へロンの公式 java

    たびたびどうもですw 以下のプログラミングをjavaで書くには、どうすればよいでしょうか? 三角形ABCの3辺の長さa, b, cを読み込んで、へロンの公式 s = √p(p-a)(p-b)(p-c) ここに、p = (a+b+c)/2によって面積sを計算して出力するプログラムを作りなさい。ただし、3辺の長さを一度に読み込み、そのうちいずれかがゼロ以下であるか、またはa<b+c, b<c+a, c<a+bのいずれかが満たされていない場合には、警告を表示して実行を停止するものとする。なお、(1)書式無し、(2)小数点以下5桁、全幅10桁の固定小数点、(3)仮数部小数点以下5桁、全幅14桁の浮動小数点の3通りの書式で続けて出力させるものとする。 実行例; 三角形の3辺の長さを入力しなさい;2.5 2 1.5 三角形の面積は1.5です 三角形の面積は 1.50000です 三角形の面積は 1.50000e+00です ちなみに自分でここまでやってみました。どこが違うのでしょうか? import java.util.Scanner; class Mondai { public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); System.out.print("三角形の3辺の長さを入力>"); double a = stdIn.nextInt(); double b = stdIn.nextInt(); double c = stdIn.nextInt(); double p = (a + b + c)/2; s = Math.sqrt(p * (p - a) * (p - b) * (p - c)); double s = stdIn.nextInt(); if (0 > a) System.out.println("警告します.実行を停止してください."); else if (0 > b) System.out.println("警告します.実行を停止してください."); else if (0 > c) System.out.println("警告します.実行を停止してください."); else if ((b + c > a) && (c + a > b) && (a + b > c)) System.out.printf("三角形の面積は%3dです. \n", s); System.out.printf("三角形の面積は%10fです. \n", s); else System.out.println("警告します.実行を停止してください."); } }

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

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