如何使数字结果不带小数点

问题描述 投票:0回答:1

我对代码有疑问。我将复制简化的代码,其中包含两个editext和一个textview和按钮。使用此代码,如果editext1中的值为“ 100”,而其他editext2为“ 60”,我得到的结果为“ 40.0”,并且应该为“ 40”。谢谢

用于代码:

公共类MainActivity扩展了AppCompatActivity {

EditText number1;
EditText number2;
Button Add_button3;
TextView descr;
int ans=0;
private BreakIterator view;

@SuppressLint("CutPasteId")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //
    number1=(EditText) findViewById(R.id.editText_first_no);
    number2=(EditText) findViewById(R.id.editText_second_no);
    Add_button3=(Button) findViewById(R.id.add_button3);
    descr = (TextView) findViewById(R.id.textView_DESC);



    //
    Add_button3.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {

            double num1 = Double.parseDouble(number1.getText().toString());
            double num2 = Double.parseDouble(number2.getText().toString());

            double sump = num1 - num2;

            descr.setText(Double.toString(sump));




        }
    });
}

}

java android numbers decimal rounding
1个回答
0
投票

有两个选项,强制转换和使用Math类。

投射:descr.setText(Integer.toString((int)sump));

该方法只有一个缺点,您正在丢失信息。

因此,如果您抽象等于[1.70000000002]的double sump = 5.0 - 3.3;,则强制转换为'1'。

我认为更好的方法是使用Math类,尤其是使用random()方法,即:

descr.setText(Math.round(sump));

该方法还将删除一些数据,但会将数字四舍五入为最接近的整数(整数),这是处理类似情况的首选方法。

有关更多信息,请检查:How to convert float to int with Java

© www.soinside.com 2019 - 2024. All rights reserved.