这里有一段Java代码:显示Java double值
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?谢谢!
这里有一段Java代码:显示Java double值
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?谢谢!
NumberFormat formatter = new DecimalFormat("#0.00");
double decimal = 0.60;
System.out.println(formatter.format(decimal));
你不能,你试图这样做。 A double
只存储一个数字,它不存储编号写入的精度。您可以更改输出的格式(例如System.out.printf("%.2f", value)
,或者您可以将值存储在不同的数据类型中(例如,BigDecimal
,确实可以区分这种差别),但双倍值0.6
和双倍值0.60
之间没有差别。
也可格式化使用String类。
System.out.println(String.format("%1.2f",.60));
格式的方法需要多个参数,第一个参数总是格式字符串,它使用以下语法。
%[argument_index$][flags][width][.precision]conversion
请参阅Java文档查看详细信息,格式化
http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax
尝试'的System.out.println(的String.format( “%.2f”,十进制));' – silentprogrammer 2015-04-01 17:09:44
谢谢@singhakash,这工作完美!你能简单解释一下'String.format'的作用吗? – BjC 2015-04-01 17:17:47
请参阅java格式器类http://docs.oracle.com/javase/7/docs/api/index.html?java/util/Formatter.html %[flags] [width] [。precision]转换。 “用于填充,2指定浮点数和f的位数 – Chandru 2015-04-01 17:25:18