219

でできますSystem.out.printか?

4

17 に答える 17

301

printf次のような方法を使用できます。

System.out.printf("%.2f", val);

要するに、%.2f構文はJavaに、フォーマット指定子()の先頭から浮動小数点数()の小数表現で小数点以下val2桁()を含む変数()を返すように指示します。.2f%

他にも使用できる変換文字がありますf

  • d:10進整数
  • o:8進整数
  • e:科学的記数法の浮動小数点
于 2010-03-29T14:47:06.483 に答える
208

を使用できますDecimalFormat。それを使用する1つの方法:

DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(2);
System.out.println(df.format(decimalNumber));

#.##もう1つは、フォーマットを使用して構築することです。

すべてのフォーマットオプションは、フォーマットメソッドを呼び出すよりも読みにくいと思いますが、それは好みの問題です。

于 2010-03-29T14:46:37.420 に答える
95

コードで値をaとして必要とする場合は、String.format()を使用することをお勧めしStringます。

たとえばString.format()、次のように使用できます。

float myFloat = 2.001f;

String formattedString = String.format("%.02f", myFloat);
于 2012-05-04T22:48:31.213 に答える
42
double d = 1.234567;
DecimalFormat df = new DecimalFormat("#.##");
System.out.print(df.format(d));
于 2010-03-29T14:47:06.503 に答える
18
float f = 102.236569f; 
DecimalFormat decimalFormat = new DecimalFormat("#.##");
float twoDigitsF = Float.valueOf(decimalFormat.format(f)); // output is 102.24
于 2016-12-15T09:25:01.050 に答える
13

最後に自分自身を変更した以下のクイックコードを使用できます。ポイントの後に参照するゼロの数を追加します

float y1 = 0.123456789;
DecimalFormat df = new DecimalFormat("#.00");  
y1 = Float.valueOf(df.format(y1));

変数y1は、以前は0.123456789でした​​。コードの後、それは0.12のみに変わります。

于 2019-09-15T14:33:58.383 に答える
11
float floatValue=22.34555f;
System.out.print(String.format("%.2f", floatValue));

出力は22.35です。小数点以下3桁が必要な場合は、「%。3f」に変更してください。

于 2014-10-17T17:00:33.233 に答える
9

多くの人が言及していDecimalFormatます。ただしprintf、最新バージョンのJavaを使用している場合にも使用できます。

System.out.printf("%1.2f", 3.14159D);

printfフォーマット文字列の詳細については、フォーマッタのドキュメントを参照してください

于 2010-03-29T14:54:53.180 に答える
9

100簡単なトリックは、変数に乗算し、丸めて100.0再度除算することにより、変数の短いバージョンを生成することです。このようにして、小数点以下2桁の変数を生成します。

double new_variable = Math.round(old_variable*100) / 100.0;

この「チープトリック」は私にとって常に十分であり、どの言語でも機能します(私はJavaの人間ではなく、ただそれを学んでいます)。

于 2014-08-11T13:50:30.660 に答える
7

DecimalFormatを見てください

チュートリアルの例を次に示します。

  DecimalFormat myFormatter = new DecimalFormat(pattern);
  String output = myFormatter.format(value);
  System.out.println(value + "  " + pattern + "  " + output);

「###。##」のようなパターンを選択すると、小数点以下2桁になり、値は切り上げられると思います。リンクを見て、必要な正確な形式を取得する必要があります(たとえば、末尾のゼロが必要かどうか)。

于 2010-03-29T14:47:34.287 に答える
5

以下は、Javaで小数点以下2桁のfloatデータの出力を表示する方法のコードです。

float ratingValue = 52.98929821f; 
DecimalFormat decimalFormat = new DecimalFormat("#.##");
float twoDigitsFR = Float.valueOf(decimalFormat.format(ratingValue)); // output is 52.98
于 2018-10-31T06:57:33.417 に答える
5

Javaで小数点以下2桁までの浮動小数点数を出力するには、次のようにします。

    float f = (float)11/3;
    System.out.print(String.format("%.2f",f));

出力:3.67

>小数点以下3桁までは%.3fを使用します。

于 2021-02-11T05:56:53.687 に答える
3

OK-フロートするstr。

package test;

import java.text.DecimalFormat;

public class TestPtz {
  public static void main(String[] args) {
    String preset0 = "0.09,0.20,0.09,0.07";
    String[] thisto = preset0.split(",");    
    float a = (Float.valueOf(thisto[0])).floatValue();
    System.out.println("[Original]: " + a);   
    a = (float) (a + 0.01);

    // Part 1 - for display / debug
    System.out.printf("[Local]: %.2f \n", a);
    // Part 2 - when value requires to be send as it is
    DecimalFormat df = new DecimalFormat();
    df.setMinimumFractionDigits(2);
    df.setMaximumFractionDigits(2);
    System.out.println("[Remote]: " + df.format(a));

  }
}

出力:

run:
[Original]: 0.09
[Local]: 0.10 
[Remote]: 0.10
BUILD SUCCESSFUL (total time: 0 seconds)
于 2012-06-05T14:15:41.317 に答える
2

1時間以上私が抱えていた問題の1つで、DecimalFormatダブル入力とフロート入力の処理が異なります。RoundingModeを変更しても効果はありませんでした。私は専門家ではありませんが、私のような人に役立つかもしれないと思っていました。Math.round代わりに使用することになりました。下記参照:

    DecimalFormat df = new DecimalFormat("#.##");
    double d = 0.7750;
    System.out.println(" Double 0.7750 -> " +Double.valueOf(df.format(d)));
    float f = 0.7750f;
    System.out.println(" Float 0.7750f -> "+Float.valueOf(df.format(f)));
    // change the RoundingMode
    df.setRoundingMode(RoundingMode.HALF_UP);
    System.out.println(" Rounding Up Double 0.7750 -> " +Double.valueOf(df.format(d)));
    System.out.println(" Rounding Up Float 0.7750f -> " +Float.valueOf(df.format(f)));

出力:

Double 0.7750 -> 0.78
Float 0.7750f -> 0.77

Rounding Up Double 0.7750 -> 0.78
Rounding Up Float 0.7750f -> 0.77
于 2019-05-15T10:27:02.917 に答える
1

デモンストレーション用の小さな簡単なプログラム:

import java.io.*;
import java.util.Scanner;

public class twovalues {

    public static void main(String args[]) {

        float a,b;
        Scanner sc=new Scanner(System.in);
        System.out.println("Enter Values For Calculation");

        a=sc.nextFloat();
        b=sc.nextFloat();

        float c=a/b;
        System.out.printf("%.2f",c);
    }
}
于 2016-05-27T20:03:01.643 に答える
1

ユーザーのロケールとは関係なく、常に「。」を取得/表示するようにしたいString str = System.out.printf("%.2f", val).replace(",", ".");場合にのみ実行してください。小数点記号として。後で次のような何らかの変換を行った場合にプログラムをクラッシュさせたくない場合は、これは必須です。float f = Float.parseFloat(str);

于 2018-04-10T17:57:35.543 に答える
0

これを試して:-

private static String getDecimalFormat(double value) {

    String getValue = String.valueOf(value).split("[.]")[1];

      if (getValue.length() == 1) {
          return String.valueOf(value).split("[.]")[0] +
                "."+ getValue.substring(0, 1) + 
                String.format("%0"+1+"d", 0);
       } else {
          return String.valueOf(value).split("[.]")[0]
            +"." + getValue.substring(0, 2);
      }


 }
于 2019-08-17T10:35:12.580 に答える