Làm thế nào để chuyển đổi từ float sang bigDecimal trong java?Làm thế nào để chuyển đổi từ float sang bigDecimal trong java?
Trả lời
new BigDecimal(myfloat)
Sử dụng float
constructor:
float f = 10.0f;
BigDecimal b = new BigDecimal(f);
Không có hàm tạo float nào, điều này tự động đúc thành một double, và hàm tạo đôi không an toàn – Alex
BigDecimal value = new BigDecimal(Float.toString(123.4f));
Từ javadocs, các nhà xây dựng chuỗi thường là cách ưa thích để chuyển đổi một float
thành một BigDecimal, vì nó không bị ảnh hưởng từ không thể đoán trước của hàm tạo BigDecimal(double)
.
Trích dẫn từ các tài liệu:
Lưu ý: Đối với các giá trị float khác và đôi NaN và ± Infinity, constructor này là phù hợp với các giá trị được trả về bởi Float.toString (float) và Double.ToString (double). Đây thường là cách ưu tiên để chuyển đổi một phao hoặc gấp đôi thành một BigDecimal, vì nó không bị khó lường trước của hàm dựng BigDecimal (double).
Nhưng chuyển đổi 'float' thành String một cách rõ ràng không giúp bạn tự động giải quyết được sự không dự đoán được - bạn cần chú ý định dạng đúng giá trị (làm tròn e tc.). – Jesper
Đối với một độ chính xác của 3 chữ số sau dấu thập phân:
BigDecimal value = new BigDecimal(f,
new MathContext(3, RoundingMode.HALF_EVEN));
float f = 45.6f;
BigDecimal bd = BigDecimal.valueOf(f);
Trích dẫn từ tài liệu:
Lưu ý: Đây thường là cách ưa thích để chuyển đổi một đôi (hoặc phao) vào BigDecimal, khi giá trị trả về bằng do xây dựng một BigDecimal từ kết quả của việc sử dụng Double.toString (double).
tham khảo: BigDecimal (Java Platform SE 6)
'Double.toString (float)' tạo ra một kết quả khác với 'Float.toString (float)'. –
Đây là tối đa kiến thức của tôi:
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;
}
}
* Lưu ý: Đây thường là cách ưa thích để chuyển đổi một đôi (hoặc nổi) vào một BigDecimal, như giá trị trả về bằng với kết quả từ việc xây dựng một BigDecimal từ kết quả của việc sử dụng Double.toString (double).
public static BigDecimal valueOf (val kép)
thông số:
val - đôi để chuyển đổi sang một BigDecimal.
Trả về:
một BigDecimal có giá trị bằng hoặc xấp xỉ bằng giá trị của val.
Ném:
NumberFormatException - nếu val là vô hạn hoặc NaN.
Từ:
1,5
Tôi đã kiểm tra liệu Infinite hoặc Not a Number, do đó có ít cơ hội NumberFormatException
- 1. Làm thế nào để chuyển đổi BigInteger sang BigDecimal?
- 2. Làm thế nào để chuyển đổi Double.POSITIVE_INFINITY sang BigDecimal?
- 3. Chuyển đổi hex sang float
- 4. Java - Làm thế nào để làm tròn giá trị float (hoặc BigDecimal) bằng 0,5?
- 5. Làm thế nào để chuyển đổi một số nguyên sang float trong Delphi?
- 6. Chuyển đổi từ kép thành float trong Java
- 7. Làm thế nào để chuyển đổi từ chuỗi định dạng phân số thành thập phân hoặc Float trong Java?
- 8. Làm thế nào để chuyển đổi Char thành Float
- 9. Làm cách nào để chuyển đổi giá trị số chuỗi bằng ký hiệu đô la sang BigDecimal trong java?
- 10. Chuyển đổi từ phao sang BigDecimal sau đó có nguy hiểm không?
- 11. Chuyển đổi float sang int trong Objective-C
- 12. Tại sao có một chuyển đổi ngầm từ Float/Đôi thành BigDecimal, nhưng không phải từ chuỗi?
- 13. Cách chuyển đổi mảng 4 byte thành float trong java
- 14. Làm thế nào để chuyển đổi Float (Wrapper class) thành lớp wrapper Integer?
- 15. Loại Chuyển đổi từ C sang Java
- 16. làm thế nào để chuyển đổi tỷ lệ phần trăm chuỗi thành BigDecimal?
- 17. Chuyển đổi từ C++ sang Java
- 18. Làm cách nào để chuyển đổi từ Lịch Gregorian sang Thời gian Unix, trong Java?
- 19. Java chuyển đổi float thành số nguyên
- 20. Làm cách nào để chuyển đổi số nguyên thành float trong Java?
- 21. Làm cách nào để chuyển đổi từ kết quả Java sang truy vấn ColdFusion trong Railo?
- 22. Làm cách nào để chuyển từ Java sang Clojure?
- 23. Làm thế nào để chuyển đổi chuỗi hex để nổi trong Java?
- 24. Chuyển đổi Float sang thập phân (SQL Server)
- 25. Làm thế nào để chuyển đổi CGFontRef sang UIFont?
- 26. Làm thế nào để chuyển đổi Lịch sang java.sql.Date trong Java?
- 27. Thế hệ Java JaxB, Làm thế nào để có được một bigDecimal từ xsd của tôi?
- 28. Làm thế nào để chuyển đổi một mảng các chuỗi thành một mảng float trong numpy?
- 29. Làm thế nào để chuyển đổi char * sang BSTR?
- 30. Làm thế nào để chuyển đổi chuỗi số (float) trong Perl
Không có nhà xây dựng nổi, điều này được Automagically đúc đến một đôi, và constructor đôi không an toàn – Alex