2011-05-24 64 views
1

我想设置的十进制值,下面是我的输入字符串十进制转换

String rate="1.000000000"; 

转换为双:

Double converted=Double.valueOf(rate); 
DecimalFormat format=new DecimalFormat("#.########"); //Setting decimal points to 8 

System.out.println("ouput"+format.format(rate)); //Giving output as 1. 

我不明白如何做到这一点,任何提示请。

问候,

Chaitu

+0

下一次,请真的评论评论。 – MByD 2011-05-24 12:53:51

回答

5

尝试

DecimalFormat format=new DecimalFormat("#.00000000"); 

System.out.println("ouput"+format.format(converted)); 
+0

@ user569125,你是什么意思,它不工作? – mre 2011-05-24 12:46:35

+0

@user看我的编辑。你必须在'format()'中使用var''''。见http://ideone.com/El29N – 2011-05-24 12:47:01

4

#将不会显示为0,使用0代替:

String rate="1.010000000"; 
    Double converted=Double.valueOf(rate); 
    DecimalFormat format=new DecimalFormat("0.00000000");  
    System.out.println("ouput "+format.format(converted)); 
+0

@sthupahsmaht - 我发布之前,我看到巴拉的编辑(关于'转换') – MByD 2011-05-24 12:52:40

1

首先,您将字符串rate传递给DecimalFormat.format方法。这将失败,你需要通过converted对象。

当我通过上述更改测试你的代码时,我在输出中得到了1.01。要格式化为8位小数,请按照Bala Rs的评论。即DecimalFormat format = new DecimalFormat("#.00000000");