如何将double值传递给Android中的textview

时间:2012-04-03 17:19:47

标签: android eclipse double

在Android中,我将textview的文本设置为计算的答案,该计算是double数据类型。

当double值的值为5时,textview会收到字符串:5.0

代码:

double result = number1/number2;
String finalresult = new Double(result).toString();
textView1.setText(finalresult);

如何设置textView文本的格式,以便以一致的格式显示double值?

7 个答案:

答案 0 :(得分:35)

在Android中,为textView指定一个双精度词:

使用Double.toString:

result = number1/number2    
String stringdouble= Double.toString(result);
textview1.setText(stringdouble));

或者您可以使用NumberFormat:

Double result = number1/number2;
NumberFormat nm = NumberFormat.getNumberInstance();
textview1.setText(nm.format(result));

强制3个单位精度:

private static DecimalFormat REAL_FORMATTER = new DecimalFormat("0.###");
textview1.setText(REAL_FORMATTER.format(result));

答案 1 :(得分:1)

最好的方法是

   String finalresult = String.valueof(result); 
   textview.setText(finalresult);

答案 2 :(得分:0)

试试这个

 TextView tv = (TextView)findViewById(R.id.button1);
            Double num = (double)4+6;
            if(num%2==0) {
                tv.setText(num.intValue()+""); //if you want to remove the decimal place
            } else {
                tv.setText(num+"");
            }

答案 3 :(得分:0)

您可以使用NumberFormat,然后就可以使用正常的代码:

 result = number1/number2    
 String finalresult = new Double(result).toString();
 NumberFormat nf = NumberFormat.getInstance();
 nf.setMinimumFractionDigits(0);
 nf.setMaximumFractionDigits(0);
 finalresult= nf.format(result);
 textView1.setText(finalresult);

在那里你可以设置最大值,或者你也可以转换为整数。

double number1 =1.0;
double number2 = 10.4;
int result = (int) (number1/number2);
textView1.setText(String.valueOf(result));

它们之间的区别在于第一个将数字四舍五入到最接近的整数并且将是更准确的近似,而转换为整数将导致将结果变为3.9的情况将被设置为3并且是一个很大的差异。因此,我建议使用NumberFormat

答案 4 :(得分:0)

Double result = number1/number2;//number1 and number2 are double
textView1.setText(""+result);

使用以上两行将值设置为textview

答案 5 :(得分:0)

最简单的方式text.setText(a+"")

答案 6 :(得分:0)

我不喜欢接受的答案以及提供的所有其他答案,因为存在一种更简便的方法,该方法也可以为您舍入价值,例如如果小数点后一位显示1,则4.56将显示为4.6。

例如,如果您只想在小数点后显示一位数字:

double val = 1.8765;
doubleTextView.setText(String.format(Locale.US, "%.1f", val));

如果您只想显示四舍五入的整数部分

double val = 1.8765;
doubleTextView.setText(String.format(Locale.US, "%.0f", val));

您还可以将语言环境设置为德国,这样1.08将显示为1,08(在德国,十进制标识符为逗号)

例如

double val = 1.8765;
doubleTextView.setText(String.format(Locale.GERMAN, "%.0f", val));