2015-04-01 84 views
-2

这里有一段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?谢谢!

+1

尝试'的System.out.println(的String.format( “%.2f”,十进制));' – silentprogrammer 2015-04-01 17:09:44

+0

谢谢@singhakash,这工作完美!你能简单解释一下'String.format'的作用吗? – BjC 2015-04-01 17:17:47

+0

请参阅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

回答

1
NumberFormat formatter = new DecimalFormat("#0.00"); 
double decimal = 0.60; 
System.out.println(formatter.format(decimal)); 
0

你不能,你试图这样做。 A double只存储一个数字,它不存储编号写入的精度。您可以更改输出的格式(例如System.out.printf("%.2f", value),或者您可以将值存储在不同的数据类型中(例如,BigDecimal,确实可以区分这种差别),但双倍值0.6和双倍值0.60之间没有差别。

0

也可格式化使用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