Tôi muốn thực hiện một thao tác như sau: nếu các số phao đã cho giống như 1.0, 2.0, 3.0, tôi muốn lưu chúng vào cơ sở dữ liệu dưới dạng số nguyên (1,2,3), nếu chúng như 1.1, 2.1,, 3.44, tôi lưu chúng dưới dạng float. giải pháp tốt nhất cho vấn đề này khi sử dụng java là gì? Trường tương ứng trong cơ sở dữ liệu là loại varchar.Java chuyển đổi float thành số nguyên
Trả lời
Chỉ cần thử int i = (int) f;
.
EDIT: Tôi thấy điểm trong câu hỏi. Mã này có thể làm việc:
int i = (int) f;
String valToStore = (i == f) ? String.valueOf(i) : String.valueOf(f);
Điều này sẽ chuyển đổi tất cả các giá trị float thành ints, mà không thực sự là những gì câu hỏi ban đầu đã được yêu cầu. –
những gì về chuỗi nổi, anh chàng? bạn chuyển đổi một phao sang int. đây không phải là điều tôi muốn. – Sawyer
Thực ra điều này hoạt động tốt: nó không chuyển đổi tất cả các giá trị float thành ints. Nó lưu trữ giá trị int trong "i" chỉ để so sánh với giá trị float. Nếu nó giống nhau (tức là nó kết thúc bằng .0) thì nó trả về "i", ngược lại nó trả về giá trị ban đầu dưới dạng Chuỗi ... @Tony, valToStore là một Chuỗi. Đây là những gì bạn yêu cầu ... – Philippe
String result = "0";
if (floatVar == Math.floor(floatVar)) {
result = Integer.toString((int) floatVar);
} else {
result = Float.toString(floatVar);
}
Các if-khoản kiểm tra xem số là một số nguyên - ví dụ: nếu nó là tương đương với kết quả của làm tròn xuống đến toàn bộ giá trị gần nhất.
Nhưng đây thực sự là yêu cầu rất kỳ quặc, và có lẽ bạn nên xem xét lại nhu cầu cho một điều như vậy.
Ông đã yêu cầu một chuỗi số nguyên, do đó, dòng chuyển đổi sang một int nên được một cái gì đó dọc theo các dòng của String str = Integer.tostring ((int) floatVar); –
ah, vâng, đã bỏ lỡ phần "chuỗi số nguyên". cảm ơn – Bozho
cảm ơn, nhưng tôi không nghĩ rằng điều này là nhanh chóng. – Sawyer
Không chắc đây là giải pháp tốt nhất, nhưng bạn có thể cố gắng để viết một phương pháp như thế này:
String convertToString(Float f) {
if (f.toString().endsWith(".0"))
return f.intValue().toString();
else
return f.toString();
}
Có vẻ như bạn muốn lưu Floats không có số dấu như số nguyên, trong khi tiết kiệm những người có dấu đáng kể số như Floats. Tôi thà chỉ cần lưu nó tất cả như phao để DB, nhưng đó là câu hỏi của bạn vì vậy đây là câu trả lời của tôi:
/**
* Method to determine if trailing numbers are significant or not. Significant
* here means larger than 0
*
* @param fFloat
* @return
*/
public static boolean isTrailingSignificant(Float fFloat)
{
int iConvertedFloat = fFloat.intValue();// this drops trailing numbers
// checks if difference is 0
return ((fFloat - iConvertedFloat) > 0);
}
Đây là cách bạn sẽ sử dụng phương pháp này:
Number oNumToSave = null;
if (isTrailingSignificant(fFloat))
{
// save float value as is
oNumToSave = fFloat;
}
else
{
// save as int
oNumToSave = fFloat.intValue();// drops trailing numbers
}
Sau đó, bạn có thể thực hiện thao tác cơ sở dữ liệu bằng biến oNumToSave.
- 1. Java Chuyển đổi số nguyên thành số nguyên hex
- 2. Làm cách nào để chuyển đổi số nguyên thành float trong Java?
- 3. Chuyển đổi float [] thành byte [] thành float [] lần nữa
- 4. Chuyển đổi từ kép thành float trong Java
- 5. C#: Chuyển đổi ushort thành float
- 6. Chuyển đổi số được viết thành từ thành số nguyên?
- 7. Cách chuyển đổi mảng 4 byte thành float trong java
- 8. Mẫu Django: Chuyển đổi float thành số nguyên nếu kết thúc bằng 0,0?
- 9. Làm thế nào để chuyển đổi giá trị float thành số nguyên trong php?
- 10. mssql chuyển đổi varchar thành float
- 11. Chuyển đổi số nguyên thành chuỗi
- 12. Python: Chuyển đổi chuỗi thành số nguyên
- 13. Chuyển đổi size_t thành số nguyên (C++)
- 14. Chuyển đổi std :: string thành số nguyên
- 15. Chuyển đổi MFC CString thành số nguyên
- 16. Chuyển đổi 2 byte thành số nguyên
- 17. Python chuyển đổi Tuple thành Số nguyên
- 18. Haskell Chuyển đổi số nguyên thành Int?
- 19. Ruby - Chuyển đổi số nguyên thành chuỗi
- 20. Chuyển đổi chuỗi thành số nguyên/phao trong Haskell?
- 21. SSE: chuyển đổi số nguyên ngắn thành phao
- 22. Rails Di chuyển để chuyển đổi chuỗi thành số nguyên?
- 23. Java Tại sao chuyển đổi dài (64) thành float (32) được coi là mở rộng?
- 24. Chuyển đổi số thành danh sách số nguyên
- 25. Chuyển đổi chuỗi có chứa một số thành số nguyên
- 26. Chuyển đổi chuỗi tiền tệ thành float trong Objective-C
- 27. Ngày để chuyển đổi số nguyên trong Java
- 28. Chuyển đổi hex sang float
- 29. Python: chuyển đổi 2 int thành 32 float
- 30. Chuyển chuỗi thành số nguyên
Điều này thực sự khó hiểu; bạn đang hỏi làm thế nào để sử dụng Float.toString (val)? – Will
Bạn có chắc chắn rằng các số dấu phẩy động thực sự phù hợp nhất với miền sự cố của bạn không? Nếu bạn muốn độ chính xác, bạn nên sử dụng BigDecimal –