2014-05-19 163 views
-4

我有一个刺价值指数在java中取整5个小数位?

class round{  
    public static void main(String args[]){ 
     String a ="2.4545776339999877E7"; 
     double roundOff = Math.round(a); 
     System.out.println(roundOff); 
    } 
} 

含有所以我要四舍五入高达5个小vaue。如何做到这一点?

+0

请使用代码标签来提高可读性。 – angrybobcat

+0

你也懒得格式化,我懒得回答 – PKlumpp

+0

你的意思是5位数的精度,小数点后5位,或者最接近的1/100000,因为这些都是不同的东西。你能说出预期的结果吗? –

回答

1

如果你只想输出(或得到一些String)出这个浮点值,你可以这样做的:

double val = Double.valueOf(a); 
String str = String.format("%.5f", val); 
System.out.println (str); 

不然,如果你真的想获得双倍与精度的整数部分之后5个迹象,你可能会写:

double val = ... // the same as in the previous example 
double val5Signs = Math.floor(val * 1e5)/1e5; 
+0

这将舍入到最接近的1/100000。 –

+0

@PeterLawrey这是OP要求的,不是吗? –

+0

+1这可能是或OP可能期望'2.45458E7'这是不同的。 –

0

您还可以使用输出的宗旨在Java十进制格式器:

double input = Double.valueOf(a); 
DecimalFormatSymbols symbol = DecimalFormatSymbols.getInstance(); 
symbol.setDecimalSeparator('.'); 
System.out.println(new DecimalFormat("#0.00000", symbol).format(input));