9

私はプロジェクトをcmからインチに変換しました。私はやりました: Math.round で数値を丸めるにはどうすればよいですか?

import java.util.Scanner;  

public class Centimer_Inch
{

public static void main (String[] args)
{
        // 2.54cm is 1 inch
       Scanner cm = new Scanner(System.in); //Get INPUT from pc-Keyboard
       System.out.println("Enter the CM:"); // Write input
       //double
       double centimeters = cm.nextDouble();
       double inches = centimeters/2.54;
       System.out.println(inches + " Inch Is " + centimeters + " centimeters");


    }
}
4

3 に答える 3

11

次のようなことができます。

Double.valueOf(new DecimalFormat("#.##").format(
                                           centimeters)));  // 2 decimal-places

あなたが本当にしたい場合Math.round:

(double)Math.round(centimeters * 100) / 100  // 2 decimal-places

を使用して小数点以下 3 桁、 を使用して10004桁にすることができ10000ます。個人的には、最初のオプションの方が好きです。

于 2012-11-03T15:26:11.583 に答える
8

メソッドを使用するにMath.roundは、コード内の 1 行だけを変更する必要があります。

double inches = Math.round(centimeters / 2.54);

小数点以下2桁を保持したい場合は、これを使用できます:

double inches = Math.round( (centimeters / 2.54) * 100.0 ) / 100.0;

ところで、丸めなしでこれらの問題に対処するためのより良い方法をお勧めします。

問題は表示のみであるため、データのモデルを変更する必要はなく、表示を変更するだけで済みます。数値を必要な形式で出力するには、すべてのロジック コードを次のようにして、結果を次のように出力します。

  1. コードの先頭にこのインポートを追加します。

    import java.text.DecimalFormat;
    
  2. この方法で出力を印刷します。

    DecimalFormat df = new DecimalFormat("#.##");
    System.out.println(df.format(inches) + " Inch Is " +
                       df.format(centimeters) + " centimeters");
    

文字列"#.##"は、数字が表示される方法です (この例では 2 桁の 10 進数)。

于 2012-11-03T15:24:51.570 に答える
1

以下を使用して、小数点以下 2 桁まで出力できます。

 System.out.printf("%.2f inch is %.2f centimeters%n", inches, centimeters);
于 2012-11-03T17:08:37.360 に答える