1

我在使用 Talkback 时遇到问题。在我的字符串中,我有以下数字。

1,827

这是一个荷兰数字,所以这个数字意味着: 1 欧元和 82.7 美分。

但是Talkback说:1827 欧元。

所以这个问题只有在我有一个超过 2 位小数的数字时才会出现。如何解决这个问题?

- -编辑 - -

当我阅读此页面时:https ://english.stackexchange.com/questions/62397/reading-out-decimal-numbers-in-english

看来我必须将数字1,827发音如下:

如果它是一个数字,一点八二七代替行动。这个怎么做?

- -编辑 - -

我包括以下内容:

 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;

这就是我所做的。我为值字符串中的每个字符和 , 或 . 我用逗号或点文本替换它。

这暂时有效,但它不是一个干净的解决方案。如果其他人有更好的解决方案,请分享

4

1 回答 1

0

试试这个并根据您的要求修改您的

TextView currencylbl = (TextView) findViewById(R.id.currencylbl);
        boolean countryCurrency = true;
        String currency = "1,827";
    if(countryCurrency==true && currency.contains(",")){

            StringTokenizer stringTokenizer = new StringTokenizer(currency, ",");
            String currencyBeforeComma = null;
            String currencyAfterComma = null;

            while (stringTokenizer.hasMoreTokens()) {
                currencyBeforeComma = stringTokenizer.nextToken();
                currencyAfterComma = stringTokenizer.nextToken();
                currencylbl.setText(currency);
            } 

            Double double1 = Double.parseDouble(currencyAfterComma);
            double1 = Double.parseDouble(currencyBeforeComma)+double1/1000;
            currencylbl.setContentDescription(double1+"");
        }

countryCurrency 是指特定的 Country 货币布尔值。还可以根据您的要求进行修改。

            Double double1 = Double.parseDouble(currencyAfterComma);
            double1 = Double.parseDouble(currencyBeforeComma)+double1/1000;
            currencylbl.setContentDescription(double1+"");

xml 是

<TextView 
    android:id="@+id/currencylbl"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="24sp"
    />
于 2015-09-01T07:53:12.647 回答