显示 Java 双精度值
displaying Java double value
这是一段 Java 代码:
import java.util.*;
public class javaTests
{
public static void main(String[] args)
{
double decimal = 0.60;
System.out.println(decimal);
}
}
我正在尝试打印 0.60,但编译器打印了 0.6。我怎样才能让它打印 0.60?谢谢!
你做不到,就像你想做的那样。 double
只存储一个数字,它不存储写入数字的精度。您可以更改输出的格式(例如 System.out.printf("%.2f", value)
,或者您可以将值存储在不同的数据类型中(例如 BigDecimal
,这确实区分了这一点),但在 double 中没有区别值 0.6
和双精度值 0.60
.
NumberFormat formatter = new DecimalFormat("#0.00");
double decimal = 0.60;
System.out.println(formatter.format(decimal));
您还可以使用字符串 class 进行格式化。
System.out.println(String.format("%1.2f",.60));
格式化方法有多个参数。第一个参数始终是格式字符串,它使用以下语法。
%[argument_index$][flags][width][.precision]conversion
有关 Formatter
的详细信息,请参阅 java 文档
http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax
这是一段 Java 代码:
import java.util.*;
public class javaTests
{
public static void main(String[] args)
{
double decimal = 0.60;
System.out.println(decimal);
}
}
我正在尝试打印 0.60,但编译器打印了 0.6。我怎样才能让它打印 0.60?谢谢!
你做不到,就像你想做的那样。 double
只存储一个数字,它不存储写入数字的精度。您可以更改输出的格式(例如 System.out.printf("%.2f", value)
,或者您可以将值存储在不同的数据类型中(例如 BigDecimal
,这确实区分了这一点),但在 double 中没有区别值 0.6
和双精度值 0.60
.
NumberFormat formatter = new DecimalFormat("#0.00");
double decimal = 0.60;
System.out.println(formatter.format(decimal));
您还可以使用字符串 class 进行格式化。
System.out.println(String.format("%1.2f",.60));
格式化方法有多个参数。第一个参数始终是格式字符串,它使用以下语法。
%[argument_index$][flags][width][.precision]conversion
有关 Formatter
的详细信息,请参阅 java 文档http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax