How to call setText() using a Float?
本问题已经有最佳答案,请猛点这里访问。
我试图使用浮点数调用setText(),但它似乎不起作用可以帮助我解决问题吗?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | public class Bmi extends MainActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.bmi); final EditText h = (EditText)findViewById(R.id.editText2); final EditText w = (EditText)findViewById(R.id.editText3); final TextView r = (TextView)findViewById(R.id.textView4); Button calculate = (Button) findViewById(R.id.button1); calculate.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { float height=0; float weight=0; float result=0; height= Float.parseFloat(h.getText().toString()); weight= Float.parseFloat(w.getText().toString()); result = (weight/(height * height)); r.setText(result); } }); } } |
我试图像实践中那样制作一个简单的bmi计算器,但是我在使它工作方面遇到问题
您应该将float转换为String
1 | r.setText(String.valueOf(result)); |
还是快速而肮脏的方式
1 | r.setText("" + result); |
如果要本地化(点或逗号分隔的十进制数字)
1 2 | String text = NumberFormat.getInstance(YOURCONTEXT.getResources().getConfiguration().locale).format(result); r.setText(text); |
如果您在MainActivity中,则将
如果要设置最小或最大小数位数,请尝试以下操作:
1 2 3 4 5 6 | NumberFormat numberformat = NumberFormat.getInstance(YOURCONTEXT.getResources().getConfiguration().locale); numberformat.setMaximumFractionDigits(2); numberformat.setMaximumIntegerDigits(1); numberformat.setMinimumFractionDigits(2); String text = numberformat.format(result); r.setText(text); |
为了在TextView中显示浮点值,您需要先将其转换为String。
您可以使用String.valueOf(value)方法将任何原始数据类型(int,float,double,boolean等)转换为String。
此处的value是要转换为String的变量。
您可以使用
1 2 | String str = String.valueOf(result); r.setText(str); |
或者
1 | r.setText(String.valueOf(result)); |
如果需要进一步的帮助,请发表评论。
您可以使用
1 | r.setText(String.valueOf(result)); |