首先请原谅我讲英语不好。
我是Android开发的新手。我有一个问题,认为你可以解决它。
问题是:
我的Android应用程序中有一个非常大的双重值,如12345678987654321
但是当我想在EditText
上显示时,它会显示为12345678987654300
。
在这种情况下,当我的值字符超过 15个字符时,android显示剩余的字符为“0”
我不知道自己要做什么。
我正在使用此代码:
DecimalFormat df = new DecimalFormat("#.#########");
double a = Distancevals[1] * Distancevals[2];
//Distancevals is an array of double with big values
EditText editto = (EditText)findViewById(...);
editto.setText(df.format(a));
答案 0 :(得分:1)
Double
以12345678987654321
格式存储您的号码1.23456789876543E16
,因此您将丢失号码21
的结尾。格式化结果时,已知您的数字由17个符号组成,因此format
函数会在数字的末尾添加两个零而不是21
。
尝试使用它:
DecimalFormat df = new DecimalFormat("#.#########");
BigDecimal a = new BigDecimal(Distancevals[1] * Distancevals[2]);
// Distancevals is an array of double with big values
EditText editto = (EditText) findViewById(...);
editto.setText(df.format(a));
答案 1 :(得分:0)
试试这个
DecimalFormat df= new DecimalFormat("###############00");
double a=Distancevals[1]*Distancevals[2];
//Distancevals is an array of double with big values
EditText editto=(EditText)findViewById(...);
editto.setText(df.format(a));
答案 2 :(得分:0)
您只需将其显示为editto.setText(a+"");
因为在你的情况下,EditText没有做任何事情,但DecimalFormat正在改变你的号码。
答案 3 :(得分:0)
我建议行:
editto.setText(df.format(a));
将其更改为:
editto.setText(df.format(a.toString()));