Có cách nào dễ dàng để đọc lại nếu tập hợp ngôn ngữ sử dụng dấu phẩy thập phân hoặc dấu thập phân không?Dấu thập phân hoặc dấu phẩy thập phân trong Android
Trả lời
Tôi tin rằng tôi có một cách. Tôi chưa bao giờ DÙNG này, tâm trí bạn, nhưng chắc chắn nó sẽ giúp bạn đóng, nếu không muốn nói đó:
NumberFormat nf = NumberFormat.getInstance();
if (nf instanceof DecimalFormat) {
DecimalFormatSymbols sym = ((DecimalFormat) nf).getDecimalFormatSymbols();
char decSeparator = sym.getDecimalSeparator();
}
Documents:
NumberFormat
, DecimalFormat
, DecimalFormatSymbols
Theo các tài liệu DecimalFormat, dường như gọi NumberFormat.getInstance() là an toàn, nhưng có thể trả về một lớp con khác với DecimalFormat (tùy chọn khác mà tôi thấy là ChoiceFormat). Tôi tin rằng đối với phần lớn các trường hợp, nó phải là một DecimalFormat, và sau đó bạn có thể so sánh decSeparator
với một số ,
và .
để xem định dạng nào đang sử dụng.
Không chắc chắn nếu có một cách dễ dàng, nhưng bạn có thể kiểm tra bộ ngôn ngữ nào đang được sử dụng và sau đó thực hiện các thay đổi thích hợp theo ngôn ngữ đó sử dụng dấu phẩy hoặc số thập phân.
dấu tách ngôn ngữ và dấu thập phân là hai vấn đề khác nhau. thêm vào, bạn không muốn liệt kê tất cả ngôn ngữ hiện có. – Loda
tôi đã cố gắng này và nó làm việc tốt ...
String osVersion = System.getProperty("os.version");
String PhoneModel = android.os.Build.MODEL;
String locale = this.getResources().getConfiguration().locale.getDisplayCountry();
char decSeparator = '*';
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
decSeparator = dfs.getDecimalSeparator();
String androidVersion = android.os.Build.VERSION.RELEASE;
String prologue = String.format("OS verson = %s PhoneModel = %s locale = %s DecimalFormatSymbol = [%c] androidVersion = %s ",
osVersion ,PhoneModel, locale, decSeparator,androidVersion);
bạn có thể sử dụng:
Currency currency = Currency.getInstance(device_locale);
vì sử dụng currency.getSymbol()
cho biểu tượng. Đối với ngôn ngữ thiết bị mặc định, bạn có thể sử dụng:
@TargetApi(Build.VERSION_CODES.N)
public static Locale getCurrentLocale(Context c) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return c.getResources().getConfiguration().getLocales().get(0);
} else {
//noinspection deprecation
return c.getResources().getConfiguration().locale;
}
}
- 1. số định dạng có 3 dấu thập phân, dấu phân tách hàng thập phân và dấu phẩy sau
- 2. NSNumberFormatter với dấu phẩy thập phân phân cách
- 3. Chấp nhận dấu phẩy và dấu chấm làm dấu phân cách thập phân
- 4. Dấu tách thập phân C#?
- 5. float.Parse không thành công trên thập phân và dấu phẩy
- 6. Thay đổi dấu phân cách thập phân trong MySQL
- 7. chuyển đổi dấu thập phân
- 8. Tạo các biểu mẫu Django sử dụng dấu phẩy làm dấu phân cách thập phân
- 9. Làm cách nào để đặt dấu phân cách thập phân thành dấu phẩy?
- 10. cách phân tích cú pháp thập phân thập phân hoặc thập phân trong Python
- 11. Grails databinding với dấu phân cách thập phân
- 12. Thêm số 0 vào dấu phẩy sau dấu thập phân trong Python
- 13. Thay đổi dấu phẩy thành dấu chấm, làm việc với số thập phân trong php
- 14. Làm cách nào để thay đổi số float của tôi thành hai số thập phân bằng dấu phẩy làm dấu tách dấu thập phân trong python?
- 15. Tước dấu phẩy từ Số nguyên hoặc số thập phân trong đường ray
- 16. Oracle SQL - thay đổi dấu chấm thập phân cho dấu phẩy
- 17. jqGrid: Định dạng số với dấu phẩy là dấu thập phân
- 18. LISP - chữ số sau dấu thập phân
- 19. Chuyển đổi/Truyền một nVarChar bằng Dấu phẩy thành Dấu thập phân
- 20. số hiển thị bằng dấu phẩy và dấu chấm thập phân
- 21. Căn chỉnh dữ liệu thập phân trong cột bảng theo dấu thập phân, HTML5, CSS3
- 22. Thêm dấu phẩy (phân tách nhóm) vào số mà không sửa đổi số thập phân?
- 23. Cách đặt ',' làm dấu phân cách thập phân với R
- 24. Bàn phím số với dấu phân cách thập phân
- 25. định dạng số có dấu phẩy và số thập phân trong C# (asp.net MVC3)
- 26. Trích xuất phần thập phân từ số dấu phẩy động trong C
- 27. Làm cách nào để có thể cho phép dấu chấm và dấu phẩy như dấu phân cách dấu thập phân hợp lệ cho phao?
- 28. Kiểu dữ liệu 'TIỀN' của SQL Server có phải là dấu phẩy động thập phân hay dấu phẩy động nhị phân không?
- 29. Số học thập phân trong C hoặc C++?
- 30. Định dạng một số bằng dấu phẩy, nhưng giữ số thập phân
Cảm ơn công trình này tuyệt vời – patrick
Tôi cần phải truyền 'nf' vào' DecimalFormat' '((DecimalFormat) nf) .getDecimalFormatSymbols()', cảm ơn rất nhiều. –
Cảm ơn @ SelçukCihan, tôi đã chỉnh sửa câu trả lời để bao gồm các diễn viên yêu cầu! – kcoppock