У меня проблема с Talkback. В моей строке у меня есть следующий номер.
1,827
это голландское число, поэтому оно означает: 1 евро и 82,7 цента.
Но Talkback говорит: 18 сотен и 27 евро.
Так что эта проблема возникает только тогда, когда у меня есть число с более чем двумя десятичными знаками. Как решить эту проблему?
---РЕДАКТИРОВАТЬ---
Когда я читаю эту страницу: https://english.stackexchange.com/questions/62397/reading-out-decimal-numbers-in-english
кажется, я должен произнести число 1827 следующим образом:
одна целых восемь две семь вместо действия, если это число. Как это сделать?
---РЕДАКТИРОВАТЬ---
Я включил следующее:
StringTokenizer stringTokenizer = new StringTokenizer(value, ".");
String currencyBeforeComma = null;
String currencyAfterComma = null;
while (stringTokenizer.hasMoreTokens()) {
currencyBeforeComma = stringTokenizer.nextToken();
currencyAfterComma = stringTokenizer.nextToken();
}
result = currencyBeforeComma + " point " + currencyAfterComma;
Итак, теперь его произношение: одна восьмая десятая двадцать семь. Так что это все еще то, что я хочу.
---РЕДАКТИРОВАТЬ---
String value = 1,827;
String result = "";
for (Character chars : value.toCharArray()) {
result = result + chars + " ";
}
String replace = result.replace(getResources().getString(R.string.accessibility_decimal_separator), getResources().getString(R.string.accessibility_decimal_separator_text));
return replace;
Это то, что я сделал. Я создал пробел для каждого символа в строке значения и для , или . Я заменил его запятой или точечным текстом.
Это работает на данный момент, но это не чистое решение. Если у кого-то есть лучшее решение, поделитесь