double の小数の書式設定に問題があります。4.0 などの double 値がある場合、小数を 4.00 にするにはどうすればよいですか?
14 に答える
方法の 1 つはNumberFormatを使用することです。
NumberFormat formatter = new DecimalFormat("#0.00");
System.out.println(formatter.format(4.0));
出力:
4.00
Java 8 では、メソッドを使用できますformat
..: -
System.out.format("%.2f", 4.0); // OR
System.out.printf("%.2f", 4.0);
f
floating
ポイント値に使用されます。2
小数点以下は、小数点以下の桁数を示します.
ほとんどの Java バージョンでは、以下を使用できますDecimalFormat
: -
DecimalFormat formatter = new DecimalFormat("#0.00");
double d = 4.0;
System.out.println(formatter.format(d));
String.formatを使用します。
String.format("%.2f", 4.52135);
ドキュメントに従って:
常に使用されるロケールは、 によって返されるもの
Locale.getDefault()
です。
常に静的メソッドを使用できprintf from System.out
ます。その後、対応するフォーマッタを実装します。これにより、他の例で必要なヒープ領域を節約できます。
元:
System.out.format("%.4f %n", 4.0);
System.out.printf("%.2f %n", 4.0);
かなり大きなボーナスであるヒープスペースを節約しますが、特にほとんどのプログラマーは C の printf 関数を知っているため (Java は関数/メソッドをわずかに変更します)、この例は他のどの回答よりもはるかに扱いやすいと私は考えています。
double d = 4.0;
DecimalFormat nf = DecimalFormat.getInstance(Locale.ENGLISH);
System.out.println(nf.format("#.##"));
new DecimalFormat("#0.00").format(4.0d);
setMinimumFractionDigits
別の方法は、NumberFormat
クラスのメソッドを使用することです。
ここでは基本的に、小数点の後に表示する数字の数を指定します。
したがって、指定した量が 2 であると仮定すると、 の入力は4.0
を生成します。4.00
ただし、Double
入力に指定された量よりも多くが含まれている場合は、指定された最小量が使用され、切り上げ/切り捨てでさらに 1 桁が追加されます
たとえば、4.15465454
指定された最小量が 2 の場合、生成されます4.155
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(2);
Double myVal = 4.15465454;
System.out.println(nf.format(myVal));
100% 動作します。
import java.text.DecimalFormat;
public class Formatting {
public static void main(String[] args) {
double value = 22.2323242434342;
// or value = Math.round(value*100) / 100.0;
System.out.println("this is before formatting: "+value);
DecimalFormat df = new DecimalFormat("####0.00");
System.out.println("Value: " + df.format(value));
}
}
最初のインポートNumberFormat
。次に、これを追加します。
NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance();
これにより、小数点以下 2 桁が得られ、通貨を扱っている場合はドル記号が表示されます。
import java.text.NumberFormat;
public class Payroll
{
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
int hoursWorked = 80;
double hourlyPay = 15.52;
double grossPay = hoursWorked * hourlyPay;
NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance();
System.out.println("Your gross pay is " + currencyFormatter.format(grossPay));
}
}
次のように実行できます。
double d = 4.0;
DecimalFormat df = new DecimalFormat("#.##");
System.out.print(df.format(d));