在Android中,我将textview的文本设置为double数据类型的计算的答案。当double值的值为5时,textview会收到字串:5.0 .编码:
double
5.0
double result = number1/number2; String finalresult = new Double(result).toString(); textView1.setText(finalresult);
如何设置textView文本的格式,使其以一致的格式显示double值?
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));
kmynzznz2#
最好的办法是
String finalresult = String.valueof(result); textview.setText(finalresult);
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+""); }
yrwegjxp4#
Double result = number1/number2;//number1 and number2 are double textView1.setText(""+result);
使用上面的两行将value设置为textview
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
NumberFormat
nfzehxib6#
最简单的方法text.setText(a+"")
text.setText(a+"")
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));
kfgdxczn8#
最好的方法是将双精度值转换为字符串,并将文本设置为textview。
String str = String.valueOf(12.123456789); txtView.setText(str);
8条答案
按热度按时间6ovsh4lw1#
在Android中,为textView分配一个双精度值:
使用双精度.toString:
也可以使用NumberFormat:
要强制3个单位精度:
kmynzznz2#
最好的办法是
mf98qq943#
试试这个
yrwegjxp4#
使用上面的两行将value设置为textview
ojsjcaue5#
您可以使用NumberFormat,然后执行正常代码:
在这里您可以设置最大值或者转换为整数。
它们之间的区别是第一个将数字舍入到最接近的整数,这将是一个更精确的近似值,而强制转换为整数将导致出现结果为3.9的情况,这是一个很大的区别。因此,我建议使用
NumberFormat
nfzehxib6#
最简单的方法
text.setText(a+"")
hc2pp10m7#
我不喜欢接受的答案和提供的所有其他答案,因为有一个更容易的方法存在,也将为您四舍五入的值,例如,4.56将显示为4.6时,您显示小数点后1位数。
例如,如果只想显示小数点后的1位数字:
如果只想显示舍入的整数部分
您也可以将Locale设置为德国,这样1.08将显示为1,08(因为在德国十进制标识符是逗号)
例如:
kfgdxczn8#
最好的方法是将双精度值转换为字符串,并将文本设置为textview。