如何從float轉換爲java的bigDecimal?如何在Java中將float轉換爲bigDecimal?
回答
new BigDecimal(myfloat)
使用float
構造:
float f = 10.0f;
BigDecimal b = new BigDecimal(f);
沒有浮點構造函數,這是自動轉換爲雙精度,並且雙精度構造函數不安全 – Alex 2012-11-08 16:35:42
BigDecimal value = new BigDecimal(Float.toString(123.4f));
從javadocs,字符串構造一般是一個float
轉換成一個BigDecimal的首選方法,因爲它不會從遭受BigDecimal(double)
構造函數的不可預測性。從文檔
引用:
注意:對於值其他浮點和雙精度的NaN和±無窮遠,此構造是通過Float.toString(浮點)和Double.toString返回的值兼容(雙)。 這通常是將float或double轉換爲BigDecimal的首選方式,因爲它不會受到BigDecimal(double)構造函數的不可預測性的影響。
但是明確地將「float」轉換爲String並不能幫助您自動解決不可預測性問題 - 您需要注意正確格式化值(四捨五入) TC)。 – Jesper 2010-09-30 08:58:08
對於3位的小數點後的精度:
BigDecimal value = new BigDecimal(f,
new MathContext(3, RoundingMode.HALF_EVEN));
float f = 45.6f;
BigDecimal bd = BigDecimal.valueOf(f);
引用從單證:
注意:這通常是轉換雙倍的優選方式(或 浮點數)轉換爲BigDecimal,因爲返回的值等於從構造產生的 從使用 Double.toString(double)的結果中得到一個BigDecimal。
'Double.toString(float)'產生與'Float.toString(float)'不同的結果。 – 2017-01-24 13:12:14
這是高達我的知識:
public static BigDecimal floatToBigDecimal(Float a){
if(a == null || a.isInfinite() || a.isNaN()){
return BigDecimal.ZERO;
}
try{
return BigDecimal.valueOf(a);
}catch(Exception e){
return BigDecimal.ZERO;
}
}
*注:這通常是轉換一個雙(或浮動)轉換爲BigDecimal,作爲首選方式返回的值等於從使用Double.toString(double)的結果構造BigDecimal所產生的值。
公共靜態的BigDecimal的valueOf(double val)將
參數:
VAL - 雙轉換爲一個BigDecimal。
返回:
一個BigDecimal,其值等於或近似等於val的值。
拋出:
NumberFormatException的 - 如果val爲無窮大或NaN。
由於:
1.5
我已經檢查是否無限大,不是一個數字,所以有NumberFormatException異常的機會少
- 1. java - 如何將Float轉換爲BigDecimal?
- 2. 如何在Java中將float從float轉換爲4個字節?
- 3. 將NSData轉換爲Java float?
- 4. 在Java中將float轉換爲時間?
- 5. Java將Arraylist <Float>轉換爲float []
- 6. 如何在Java中將BigDecimal轉換爲Double?
- 7. 如何將Money轉換爲Java中的BigDecimal?
- 8. 如何將String空值轉換爲java中的BigDecimal
- 9. 如何將Apfloat轉換爲BigDecimal?
- 10. EclipseLink將Enum轉換爲BigDecimal
- 11. 將BigDecimal轉換爲整數
- 12. 將org.bytedeco.javacpp.Mat轉換爲Java int/float數組
- 13. 將python轉換爲java float vs double
- 14. 如何將十六進制值轉換爲java中的float值?
- 15. 如何將Oracle的NUMERIC字節表示轉換爲java BigDecimal?
- 16. 如何將char *轉換爲float xcode
- 17. 如何將String轉換爲Float?
- 18. 如何將int轉換爲float?
- 19. 如何(快速)將float轉換爲Byte?
- 20. 如何將int轉換爲float?
- 21. 如何將userdata轉換爲uint32或float?
- 22. 如何將'System.IntPtr'轉換爲'float []'?
- 23. 如何將float值轉換爲Min:Sec
- 24. 如何將float轉換爲BCD
- 25. 如何將Char轉換爲Float
- 26. 在android中將float轉換爲CharSequence?
- 27. 在F#中將float轉換爲int#
- 28. 在Julia Lang中將float轉換爲int
- 29. 在C++中將float轉換爲std :: string
- 30. 在uint32_t計算中轉換爲float float
沒有浮動的構造,這是自動強制轉換爲雙,和雙構造函數是不安全的 – Alex 2012-11-08 16:36:22