2013-10-28 95 views
0

我要生成30之間的號碼爲80,爲我使用:我如何降低變量的精度?

this.length=(float)(Math.random()*50+30); 

然後我不得不解析實例的幾個參數字符串:

result=this.name+" by "+this.smith+" in "+this.productionYear+" at "+this.length+" length"; 

它生成的字符串看起來像這樣:

老車通過Youta在1327處75.341866長度

我如何截斷長度以減少小數精度?我想將它設置爲點後的2位數字。

+0

[中使用Java的範圍內生成隨機數]的可能重複(http://stackoverflow.com/questions/363681 /生成隨機數-a範圍-java) – stoooops

回答

2

你可以這樣做:

import java.text.DecimalFormat; 

double d = 1.234567; 
DecimalFormat df = new DecimalFormat("#.##"); 
System.out.print(df.format(d)); 

或者試試:

double d = 1111.234567; 
String str_d = String.format("%1$.2f", d); // String.format(...) generates a new String 
System.out.println("Result: " + str_d); // Now you can use it like anyother String 
+0

你也可以使用'String.format'或者只是'System.out.printf'。 – Darkhogg

+0

但我不想打印它。我想將其添加到格式不變的字符串中。 –

+0

請參閱編輯。但是你想修改號碼?或者只是獲得所需格式的字符串? – Christian