簡體   English   中英

四舍五入來自不同Java計算的結果

[英]Rounding results from different java calculations

因此,我得到了以下代碼,該代碼根據用戶輸入進行一些計算,然后在textView中顯示結果。

public class DescentCalculator extends AppCompatActivity {

EditText num1, num2, num3;
TextView resu;
double startdecent;
double feetminute;

@Override
public void onCreate ( Bundle savedInstanceState ) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.descent);

    Toolbar mToolbar = (Toolbar) findViewById(R.id.mtoolbar);
    setSupportActionBar(mToolbar);

    Button add = (Button) findViewById(R.id.button11);
    num1 = (EditText) findViewById(R.id.altitude_fix);
    num2 = (EditText) findViewById(R.id.altitude_cruise);
    num3 = (EditText) findViewById(R.id.mach_speed);
    resu = (TextView) findViewById(R.id.answer);

    add.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick ( View v ) {
            // TODO Auto-generated method stub

            String altfix = num1.getText().toString();
            String altcruise = num2.getText().toString();
            String machspeed = num3.getText().toString();


            startdecent = (Double.parseDouble(altcruise) - Double.parseDouble(altfix)) / 100 / 3;

            feetminute = (3 * Double.parseDouble(machspeed) * 1000);

            resu.setText(Double.toString(startdecent) + Double.toString(feetminute));


        }

    });
}

例如,如果用戶為altcruise輸入7000,為altfix輸入6000,為machspeed輸入0.30,則應用程序將答案計算為3.33333333333335899.999999999,這在技術上是正確的。 在這種情況下,我希望該應用程序匯總答案並顯示3.3。

看看這個答案: 將小數點后兩位取整

此代碼段接受一個double並將其讀入BigDecimal並將其四舍五入,以n位小數形式返回double。

public static void main(String[] args){

    double myDouble = 3.2314112;

    System.out.print(round(n,1));

}

public static double round(double value, int places) {
    if (places < 0) throw new IllegalArgumentException();

    BigDecimal bd = new BigDecimal(value);
    bd = bd.setScale(places, RoundingMode.HALF_UP);
    return bd.doubleValue();
}

這返回3.2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM