四舍五入到 2 位小数并通过 TextView
Round to 2 decimals and pass through TextView
想制作通用的除法应用程序只是为了测试一些东西,因为我对所有东西都很陌生。我得到了最终数字,我只是不知道如何或在何处应用 NumberFormat 或 DecimalFormat 或如何正确 Math.Round 所以我只能得到 2 个小数位。我会想将任何数字吐回文本视图中。
final Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
thing1 = (EditText) findViewById(R.id.thing1);
if (TextUtils.isEmpty(thing1.getText().toString())) {
n1 = 0;}
else {
n1 = Integer.parseInt(thing1.getText().toString());
}
thing2 = (EditText) findViewById(R.id.thing2);
if (TextUtils.isEmpty(thing2.getText().toString())) {
n2 = 0;}
else {
n2 = Integer.parseInt(thing2.getText().toString());
}
if (n2 !=0){
total = (n1 / n2);}
final double total = ((double)n1/(double)n2);
final TextView result= (TextView) findViewById(R.id.result);
result.setText(Double.toString(total));
}
});
}
尝试使用 String.format() 方法,它会创建一个字符串,并将该数字舍入(向上或向下舍入)到小数点后两位。
String foo = String.format("%.2f", total);
result.setText(foo);
你可以使用String.format()
result.setText(String.format("%.2f", total));
或
使用Math.round()
Math.round(total*100.0)/100.0
像这样:
result.setText(Double.toString(Math.round(total*100.0)/100.0));
尝试使用此代码:
DecimalFormat df = new DecimalFormat();
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setGroupingSeparator(',');
dfs.setDecimalSeparator('.');
df.setDecimalFormatSymbols(dfs);
df.setMinimumFractionDigits(2);
df.setMaximumFractionDigits(2);
result.setText(df.format(n1 / n2));
希望一切顺利。谢谢
你应该试试这个
result.setText(String.format( "%.2f", total) );
想制作通用的除法应用程序只是为了测试一些东西,因为我对所有东西都很陌生。我得到了最终数字,我只是不知道如何或在何处应用 NumberFormat 或 DecimalFormat 或如何正确 Math.Round 所以我只能得到 2 个小数位。我会想将任何数字吐回文本视图中。
final Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
thing1 = (EditText) findViewById(R.id.thing1);
if (TextUtils.isEmpty(thing1.getText().toString())) {
n1 = 0;}
else {
n1 = Integer.parseInt(thing1.getText().toString());
}
thing2 = (EditText) findViewById(R.id.thing2);
if (TextUtils.isEmpty(thing2.getText().toString())) {
n2 = 0;}
else {
n2 = Integer.parseInt(thing2.getText().toString());
}
if (n2 !=0){
total = (n1 / n2);}
final double total = ((double)n1/(double)n2);
final TextView result= (TextView) findViewById(R.id.result);
result.setText(Double.toString(total));
}
});
}
尝试使用 String.format() 方法,它会创建一个字符串,并将该数字舍入(向上或向下舍入)到小数点后两位。
String foo = String.format("%.2f", total);
result.setText(foo);
你可以使用String.format()
result.setText(String.format("%.2f", total));
或
使用Math.round()
Math.round(total*100.0)/100.0
像这样:
result.setText(Double.toString(Math.round(total*100.0)/100.0));
尝试使用此代码:
DecimalFormat df = new DecimalFormat();
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setGroupingSeparator(',');
dfs.setDecimalSeparator('.');
df.setDecimalFormatSymbols(dfs);
df.setMinimumFractionDigits(2);
df.setMaximumFractionDigits(2);
result.setText(df.format(n1 / n2));
希望一切顺利。谢谢
你应该试试这个
result.setText(String.format( "%.2f", total) );