使用double和toString的小数位数,android
我正在创建一个简单的程序,对用户在EditText视图中输入的值执行简单的数学函数。前两个EditText视图包含整数,最后一个可以是十进制,因此答案可能也需要是十进制形式,因此我将and(vis)设置为双精度,但如何将小数位数限制为四位?一切正常,答案只有很多小数位 这是我的密码:使用double和toString的小数位数,android,android,double,tostring,Android,Double,Tostring,我正在创建一个简单的程序,对用户在EditText视图中输入的值执行简单的数学函数。前两个EditText视图包含整数,最后一个可以是十进制,因此答案可能也需要是十进制形式,因此我将and(vis)设置为双精度,但如何将小数位数限制为四位?一切正常,答案只有很多小数位 这是我的密码: public void onClick(View v) { String a,b,t; double vis; EditText txtbo
public void onClick(View v) {
String a,b,t;
double vis;
EditText txtbox1 = (EditText)findViewById(R.id.A);
EditText txtbox2 = (EditText)findViewById(R.id.B);
EditText txtbox3 = (EditText)findViewById(R.id.t);
TextView tv = (TextView) findViewById(R.id.Answer);
a = txtbox1.getText().toString();
b = txtbox2.getText().toString();
t = txtbox3.getText().toString();
vis = ((Integer.parseInt(a)*1) + (Integer.parseInt(b)*2)) / (Double.parseDouble(t));
tv.setText(double.toString(vis));
}
}
非常感谢 您可以使用
String.format()
来确保输出中只有4位小数。只需将最后一行替换为tv.setText(String.format(“%.4f”,vis))代码>
有关如何使用String.format()。只需将最后一行替换为tv.setText(String.format(“%.4f”,vis))代码>
有关如何使用String.format()
的详细信息,请参阅。有关更多控制,请使用bigdecim.round()
。您可以使用所需的精度和舍入规则设置MathContext
(.5为向上舍入,vs.5为向下舍入,以此类推)
要获得更多控制,请使用BigDecimal.round()
。您可以使用所需的精度和舍入规则设置MathContext
(.5为向上舍入,vs.5为向下舍入,以此类推)
我认为现在回答这个问题有点晚了,但这可能对将来有所帮助
如果我们有一个double
数字,我们需要得到4个十进制值,我们可以将double
乘以10000,然后将double
值转换成一个整数
,再反向转换成double
,然后将数字除以10000。我想现在回答有点晚了,但这可能对未来有所帮助
如果我们有一个double
数字,并且我们需要得到4个十进制值,我们可以将double
乘以10000,然后将double
值转换成一个整数
,再反向转换成double
,然后将数字除以10000
double vis = 21.23456;
tv.setText(new BigDecimal(vis).round(new MathContext(6, RoundingMode.HALF_UP)).toString());