Czy istnieje prosty sposób odczytywania, jeśli zestaw języków używa przecinka dziesiętnego lub kropki dziesiętnej?Kropka dziesiętna lub przecinek dziesiętny w systemie Android
Odpowiedz
Wierzę, że mam sposób. Nigdy nie korzystałem z tego, uważasz, ale na pewno powinno się zamknąć, jeśli nie istnieją:
NumberFormat nf = NumberFormat.getInstance();
if (nf instanceof DecimalFormat) {
DecimalFormatSymbols sym = ((DecimalFormat) nf).getDecimalFormatSymbols();
char decSeparator = sym.getDecimalSeparator();
}
Docs:
NumberFormat
, DecimalFormat
, DecimalFormatSymbols
Zgodnie z docs DecimalFormat, pozornie wywołanie NumberFormat.getInstance() jest bezpieczne, ale może zwrócić podklasę inną niż DecimalFormat (inną opcją którą widzę jest ChoiceFormat). Uważam, że w większości przypadków powinien to być DecimalFormat, a następnie można porównać decSeparator
z ,
i .
, aby zobaczyć, jakiego formatu używa.
Nie jesteś pewien, czy jest łatwy sposób, ale możesz sprawdzić, który zestaw językowy jest używany, a następnie wprowadzić odpowiednie zmiany w zależności od tego, czy w tym języku użyto przecinków czy miejsc dziesiętnych.
Język i separator dziesiętny to dwa różne problemy. w dodatku nie jest prawdopodobne, aby lista wszystkich istniejących języków. – Loda
Próbowałem to i to działało dobrze ...
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);
można użyć:
Currency currency = Currency.getInstance(device_locale);
niż używać currency.getSymbol()
dla symbolu. Domyślne ustawienia regionalne urządzenia:
@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. TextBox nie honoruje System dziesiętny (kropka lub przecinek)
- 2. Dodaj przecinek dziesiętny separator dziesiętny (.net)
- 3. pandas.read_html nie obsługują przecinek dziesiętny
- 4. Ogólna liczba lub liczba dziesiętna
- 5. Akceptuj przecinek i kropkę jako separator dziesiętny
- 6. Jak ustawić separator dziesiętny jako przecinek?
- 7. Parsing numery z separator przecinek dziesiętny w JavaScript
- 8. Jaka jest różnica między, (przecinek) i. (kropka) jako operator konkatenacji?
- 9. Separator dziesiętny w numberFormat
- 10. Arytmetyka dziesiętna w C lub C++?
- 11. Jak akceptować kropkę i przecinek jako separator dziesiętny z WTForms?
- 12. Separator dziesiętny na klawiaturze na Wpf TextBox, jak?
- 13. Parse dziesiętny w widoku modelu
- 14. dziesiętny w C# nieporozumienie?
- 15. Scala kropka składnia (lub jej brak)
- 16. Różnica między ".." (podwójna kropka) i "..." (potrójna kropka) w zakresie generowania?
- 17. python matplotlib kreska-kropka-kropka - jak?
- 18. kropka w zmiennej nazwa
- 19. Używaj idiomu "przecinek" lub wskaźnika powrotu?
- 20. Dokładna arytmetyka dziesiętna w Julia
- 21. Konwersja dziesiętna? podwoić?
- 22. Reprezentacja binarna .NET dziesiętna
- 23. Podział "dziesiętny" w VB.NET
- 24. oddzwonienie w systemie Android?
- 25. US miasto, stan i zip w XML, JSON lub przecinek?
- 26. Jak zastąpić przecinek kropką w liczbie (lub jakiejkolwiek innej)
- 27. Różne typy wierszy w systemie Android GridView lub odpowiedniku
- 28. Odnośnik javax.script.ScriptEngine w systemie Android lub ocena wyrażenia javascript
- 29. Metoda wprowadzania kodu HTML usuwa separator dziesiętny?
- 30. Jak podzielić ciąg przez przecinek ignorując przecinek w podwójnych cudzysłowach
Dzięki temu działa świetnie – patrick
Musiałem rzucić 'nf' na' DecimalFormat' '((DecimalFormat) nf) .getDecimalFormatSymbols()', wielkie dzięki. –
Dzięki @ SelçukCihan, zredagowałem odpowiedź, aby dołączyć wymaganą obsadę! – kcoppock