2014-08-28 65 views
0

什麼是最好的方式來格式化下面的數字,給我作爲一個字符串?格式化問題:如何打電話給號碼?

String number = "1.574e10" //assume my value will always be a String 

我想這是與值的String:1000500000.57

我怎麼能格式化這樣?

+4

什麼是邏輯? 1.574e10!= 100050000.57 – amit 2014-08-28 08:40:01

+0

那裏有'Double.parseDouble(String)'或'new BigDecimal(String)',但他們不會爲你做數學--15,700,000,000!= 1000500000.57 – jdphenix 2014-08-28 08:42:00

+0

'String.format(「%s」,Double .parseDouble(1.574e10));' – 2014-08-28 08:43:05

回答

0

解析一個double,然後格式化doubleBigDecimal.toString()提供了一個規範表示:

// Double.parseDouble() also accepts format like "1.574e10" 
String formatted = new BigDecimal(Double.valueOf("1.574e10")).toString() 

結果:

15740000000 

關於很好地格式化浮點數,請參閱:

How to nicely format floating numbers to String without unnecessary decimal 0?

+0

如果uisng'BigDecimal'有'stripTrailingZeros()'可用 – jdphenix 2014-08-28 09:01:19

1
double x = Double.valueOf("1.574e10"); 
String s = String.format("%.2f", x); 

f符浮點這裏給出兩個p命題在小數點後面,沒有科學指數(e10)。

+0

您需要刪除指定填充爲0的'0',因爲它需要指定寬度才能使'%020.2f'工作並且'%.2f'有效,但不是'%0.2f'。如果你不介意,我會從你的答案編輯'0',因爲這是阻止我的upvote的唯一的東西。所以,+1 – 2014-08-28 09:14:31

+1

@Rudi感謝您的編輯。 – 2014-08-28 09:56:23