如何在Android中将双精度值传递给textview

rpppsulh  于 2022-12-02  发布在  Android
关注(0)|答案(8)|浏览(185)

在Android中,我将textview的文本设置为double数据类型的计算的答案。
当double值的值为5时,textview会收到字串:5.0 .
编码:

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

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

6ovsh4lw

6ovsh4lw1#

在Android中,为textView分配一个双精度值:

使用双精度.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));
kmynzznz

kmynzznz2#

最好的办法是

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

mf98qq943#

试试这个

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+"");
            }
yrwegjxp

yrwegjxp4#

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

使用上面的两行将value设置为textview

ojsjcaue

ojsjcaue5#

您可以使用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的情况,这是一个很大的区别。因此,我建议使用NumberFormat

nfzehxib

nfzehxib6#

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

hc2pp10m

hc2pp10m7#

我不喜欢接受的答案和提供的所有其他答案,因为有一个更容易的方法存在,也将为您四舍五入的值,例如,4.56将显示为4.6时,您显示小数点后1位数。
例如,如果只想显示小数点后的1位数字:

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

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

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

您也可以将Locale设置为德国,这样1.08将显示为1,08(因为在德国十进制标识符是逗号)
例如:

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

kfgdxczn8#

最好的方法是将双精度值转换为字符串,并将文本设置为textview。

String str = String.valueOf(12.123456789);
txtView.setText(str);

相关问题