我创建了一个简单的Android货币转换器应用程序,用户输入欧元值,转换后的价格以其他货币显示。 但是如何将数字四舍五入到最接近的50美分?所以,如果1欧元等于1.3395美元,我如何让应用程序显示1.50美元?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText editEuro = (EditText) findViewById(R.id.editEuro);
final EditText editAud = (EditText) findViewById(R.id.editAud);
final EditText editCad = (EditText) findViewById(R.id.editCad);
final EditText editNzd = (EditText) findViewById(R.id.editNzd);
final EditText editGbp = (EditText) findViewById(R.id.editGbp);
final EditText editUsd = (EditText) findViewById(R.id.editUsd);
Button buttonConvert = (Button)findViewById(R.id.buttonConvert);
buttonConvert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
double euro = Double.valueOf( editEuro.getText().toString());
double aud = euro * 1.4471 ;
double cad = euro * 1.4635 ;
double nzd = euro * 1.5835 ;
double gbp = euro * 0.7965 ;
double usd = euro * 1.3395 ;
editAud.setText(String.valueOf(aud));
editCad.setText(String.valueOf(cad));
editNzd.setText(String.valueOf(nzd));
editGbp.setText(String.valueOf(gbp));
editUsd.setText(String.valueOf(usd));
}
});
}
答案 0 :(得分:3)
这样的事情有代码片段。
double value = 1.3395; // your value
double roundTo = 0.5; // number that you round to
value = roundTo * Math.round(value / roundTo);
答案 1 :(得分:0)
一种方法是将输入乘以2,将其舍入为零小数位,然后除以2.
如果你的舍入函数返回一个整数类型,那么注意不要除以整数字面,否则除法将在整数算术中进行,你将失去任何分数。将最终结果乘以0.5而不是除以2将绕过这一点。