我想將Double轉換爲字符串。 並只顯示小數位。僅顯示字符串中的小數位數
在這樣:
Double: 123.465
String: 46
Double: 1123.465
String: 46
Double: 123.46555987
String: 46
現在是我的問題,我怎麼能做到這一點,什麼是最好的方式?
我想將Double轉換爲字符串。 並只顯示小數位。僅顯示字符串中的小數位數
在這樣:
Double: 123.465
String: 46
Double: 1123.465
String: 46
Double: 123.46555987
String: 46
現在是我的問題,我怎麼能做到這一點,什麼是最好的方式?
Double
可以使用toString()
轉換爲字符串。檢查API文檔。如果您有double
,那麼從Java 1.6及更高版本開始可以自動取消裝箱值Double
。要獲得小數,您可以使用substring
的第二個參數來限制輸出。
s.substring(s.indexOf("."), s.indexOf(".")+2)
或使用四捨五入至小數點後兩位
Double.valueOf(Math.round((d/(long)d)*100)/100).toString()
不完全是最好的方法,但它的作品。只要將123.456改爲任何你想要的值,也許把它放在一個方法中。
public class Test {
public static void main(String args[]) {
double fractionalPart = 123.456 % 1;
DecimalFormat twoDForm = new DecimalFormat("#.00");
System.out.println(String.valueOf(
Double.valueOf(twoDForm.format(fractionalPart))).substring(2));
}
}
當您成爲同事時,您是否打算爲他們編寫代碼? – 2013-03-18 11:56:12
不,我只是想幫助他,我只寫了兩行。如果是大量代碼,我不會感到困擾。 – david99world 2013-03-18 12:13:35
這不會提供確切的輸出要求。 – subodh 2013-03-18 12:28:04
這可能會實現:
Double d = 123.4567;
String stringRep = Double.toString(d).split(".")[1];
//Print or use stringRep
Double: 123.465
String: 46
Double d = new Double(123.465);
String str = String.valueOf(d);
Sytem.out.println(str.substring(str.lastIndexOf("."),str.lastIndexOf(".")+2));
這會幫助你
public static int twoDecimal(double original)
{
BigDecimal bd = new BigDecimal(original % 1);
BigDecimal rounded = bd.setScale(2, BigDecimal.ROUND_DOWN);
return (int) (rounded.doubleValue() * 100);
}
* 「?什麼是最好的方式」 * [?你嘗試過什麼(HTTP ://www.whathaveyoutried.com/) – 2013-03-18 11:48:37
你有嘗試過什麼嗎?如果是的話,在這裏發佈代碼。如果沒有,嘗試後回來。 – Krishnabhadra 2013-03-18 11:48:42
將double轉換爲字符串並將小數點後的字符串拆分 – 2013-03-18 11:54:16