宣言:
DecimalFormat mAmtFormat = new DecimalFormat("##,##,##,##0.00");
edtAmounts = (EditText) findViewById(R.id.txtAmounts);
从xml文件编辑文本
<EditText
android:id="@+id/txtAmounts"
android:layout_height="50dip"
android:layout_marginLeft="10dip"
android:background="#FFFFFF"
android:gravity="center_vertical"
android:inputType="numberDecimal"
android:singleLine="true"
android:textSize="18dip"
android:textStyle="bold"
android:width="170dip" />
从后端mCurtotamt是565656565(双倍)
从Sqlite数据库中获取数据:
edtAmounts.setText(String.valueOf(mAmtFormat.format(mDoubleformat
.parse(mCurtotamt).doubleValue())))
但是在编辑文本中设置的值为56,56,57,000.00
这里发生了什么。
答案 0 :(得分:1)
当您从后端获取值时,请不要将其作为字符串,如下所示:
String mCurtotamt = cursor.getString(cursor.getColumnIndex("column_name"));
相反,直接将它作为双精度,如下所示:
double mCurtotamt = cursor.getDouble(cursor.getColumnIndex("column_name"));
然后在设置编辑文本时不需要解析它,但可以直接格式化它:
edtAmounts.setText(String.valueOf(mAmtFormat.format(mCurtoamt)));
当您调用cursor.getString()时将问题转换为String时会引入问题。
答案 1 :(得分:0)
将这个用于印度这样的格式&#34; ##,##,## 0.00&#34; :
static public String formatCurrency(Double doubleVal) {
return new DecimalFormat("##,##,##0.00").format(doubleVal);
}
此函数以正确的给定格式返回值。如果您传递5555555.00值,则函数返回55,55,555.00作为字符串。