我想將指數形式轉換爲十進制形式。例如1.234E3
至1234
。從指數形式到Java中的十進制轉換
回答
,你可以把它變成使用 DecimalFormat
的字符串,是不是一個真正的轉換,而是你如何顯示數量。您可以使用NumberFormat來指定應該如何顯示數字。
檢查的區別:
double number = 100550000.75;
NumberFormat formatter = new DecimalFormat("#0.00");
System.out.println(number);
System.out.println(formatter.format(number));
你能告訴我如何做相同的數字有小數點。例如1234567812.1212。指數符號將爲1.2345678121212E9。我需要把它帶回1234567812.1212。 如果小數點後面有4位數字,我需要得到4. 如果是5位數字,那麼用5# – sai 2009-12-02 09:01:26
塞,用#。########。您可以在小數點分隔符後添加更多#以提高精度。但請注意,最大精度將取決於您使用的數據類型。例如,如果使用雙精度,則不會得到超過17位的小數位(只需檢查如果在沒有格式器的情況下打印1/3就會發生什麼情況)。因此,如果在小數點分隔符後面包含超過17個#,它不會增加精度。如果您需要比double更高的精度,請參閱BigDecimal類。 – 2009-12-02 09:35:49
如何BigDecimal.valueOf(doubleToFormat).toPlainString()
如果我使用toString()而不是toPlainString(),會有什麼區別? – 2016-02-04 08:06:38
@ShiladittyaChakraborty,[API for BigDecimal.toString()](https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html#toString--)中的第一句話如果需要指數,將使用科學記數法。 – Paul 2016-03-08 17:47:55
通過@ b.roth的答案是正確的,只有當它是特定國家的。我用這種方法,並得到國際化問題,因爲new DecimalFormat("#0.00)
採取特定國家的小數分隔符。例如,如果一個國家使用十進制分隔符作爲「,」,則由於國際化問題,格式化的值將爲0,00(例如,1.2e2將在某些地方爲120.00,而在一些地方爲120.00),如here ..
,我寧願是`方法(新的BigDecimal( 「1.2e2」)toPlainString())
只需添加以下標籤JSPX: -
<f:convertNumber maxFractionDigits="4" minFractionDigits="2" groupingUsed="false"/>
String data = Long.toString((long) 3.42E8);
System.out.println("**************"+data);
試以下
long l;
double d; //It holds the double value.such as 1.234E3
l=Double.valueOf(time_d).longValue();
你得到變量l中的十進制值。
在Java中使用雙精度和長整數時,您會看到大部分值都以指數形式顯示。
例如:在下面我們將2.35乘以10000並打印結果。
//Division example
Double a = 2.85d/10000;
System.out.println("1. " + a.doubleValue());
//Multiplication example
a = 2.85d * 100000000;
System.out.println("2. " + a.doubleValue());
結果:
- 2.85E-4
- 2.85E8
因此,你可以看到結果打印在指數格式。現在,您可能希望以純粹的十進制格式顯示結果,例如:0.000285或285000000.您只需使用類java.math.BigDecimal
即可完成此操作。在以下示例中,我們使用BigDecimal.valueOf()
將Double值轉換爲BigDecimal
,並將其轉換爲.toPlainString()
以將其轉換爲普通十進制字符串。
import java.math.BigDecimal;
//..
//..
//Division example
Double a = 2.85d/10000;
System.out.println("1. " + BigDecimal.valueOf(a).toPlainString());
//Multiplication example
a = 2.85d * 100000000;
System.out.println("2. " + BigDecimal.valueOf(a).toPlainString());
結果:
- 0。000285
- 2.85億
上述方法的唯一缺點是,它產生一些長串。您可能想要限制該值並將該數字舍入爲5或6小數點。爲此,您可以使用java.text.DecimalFormat
類。在下面的示例中,我們將數字四捨五入爲小數點後4位並打印輸出。
import java.text.DecimalFormat;
//..
//..
Double a = 2.85d/10000;
DecimalFormat formatter = new DecimalFormat("0.0000");
System.out.println(formatter .format(a));
結果:
0.0003
我剛纔試圖用一條線來壓縮此代碼,它會打印的 'A' 保留兩位小數值:
new DecimalFormat("0.00").format(BigDecimal.valueOf(a).toPlainString());
快樂轉換:)
你可以這樣做:
BigDecimal
.valueOf(value)
.setScale(decimalLimit, RoundingMode.HALF_UP)
.toPlainString()
- 1. 十進制數轉換在半字節的二進制形式
- 2. 十進制轉換爲十六進制的轉換(Java)的
- 3. 十六進制到十進制轉換在java中
- 4. 轉換十六進制到十進制
- 5. 轉換十六進制整數到形式「\ X」(C++ - 內存)
- 6. 轉換十六進制到IPv6格式在Java從PROC讀
- 7. 將指數值轉換爲十進制
- 8. 將十進制轉換爲特定格式的十進制數?
- 9. Java十進制到時間轉換
- 10. 二進制到十進制的轉換在Java中
- 11. 二進制到Java中的十進制轉換(跳出循環)
- 12. 將64位無符號整數(以十六進制字符串形式)轉換爲java中的十進制
- 13. 二進制到十進制數轉換器在JAVA?
- 14. 整數轉換爲十六進制Java
- 15. 在字符串轉換的指數值轉換爲十進制表示沒有指數形式
- 16. 轉換浮到十六進制格式
- 17. 將十六進制數轉換爲十進制格式
- 18. 十六進制數轉換成十進制公式
- 19. 轉換二進制到十進制和翻轉0和1 JAVA
- 20. Arduino的轉換十進制轉換爲二進制到十進制
- 21. 轉換VARCHAR到十進制
- 22. 十進制到HH:MM轉換
- 23. Ocaml中從十進制到二進制的轉換
- 24. 從十進制轉換爲二進制
- 25. 從二進制轉換爲十進制
- 26. 從二進制轉換爲十進制
- 27. Java - ByteBuffer和十進制和十六進制之間的轉換
- 28. 在Java中將十六進制數轉換爲十進制數(Android)
- 29. 二進制到十進制轉換
- 30. 十進制到二進制轉換
怎麼會是指數個存儲,在雙?你想要什麼小數存儲爲? – 2009-12-01 13:15:30