Android 与零相乘,不需要数字

Android 与零相乘,不需要数字,android,double,Android,Double,我正在尝试为android构建一个计算器,我正在尝试将两个数字相乘。 如果我给数字1,让数字2打开,我想得到零作为答案 我首先认为这可能是一个没有双倍值的问题。 所以我尝试了:if(Double.isNaN(number1)){number1=0;} 但它没有起作用 我该如何做到这一点 R.layout.main: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="h

我正在尝试为android构建一个计算器,我正在尝试将两个数字相乘。 如果我给数字1,让数字2打开,我想得到零作为答案

我首先认为这可能是一个没有双倍值的问题。 所以我尝试了:if(Double.isNaN(number1)){number1=0;} 但它没有起作用

我该如何做到这一点

R.layout.main:

         <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<!-- 1 -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="number:" />
    <EditText
        android:id="@+id/number1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="0"
        android:inputType="number"
        android:layout_marginLeft="20dp" />
</LinearLayout>

<!-- 2 -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="number:" />
    <EditText
        android:id="@+id/number2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="0"
        android:inputType="number"
        android:layout_marginLeft="20dp" />
</LinearLayout>


<!-- multiply -->   
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="20dp"  >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="multiply:" />
    <TextView
        android:id="@+id/multiplydisplay"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:layout_marginLeft="20dp" />
</LinearLayout>


<Button
    android:id="@+id/btncalculate"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Calculate"/>

<Button
    android:id="@+id/btnreset"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Reset" />

     </LinearLayout>

您只需检查值的textfield的内容是否不同于“”。如果不是,只需指定值0

在计算中:

private void calculate()    {
    number1calc=(number1.getText().toString() != "" ) ? Double.parseDouble(number1.getText().toString()) : 0;
    number2calc=(number2.getText().toString() != "" ) ? Double.parseDouble(number2.getText().toString()) : 0;
    multiply=(number1calc*number2calc);
    multiplydisplay.setText(Double.toString(multiply));
}

if(numberOne.getText().toString().trim().length()<1 | | numberTwo.getText().toString().length()<1){
multiplyDisplay.setText(“0”);
}
否则{
//默认处理
}

如果edittext为空,则这显然不是一个数字(NaN)。在Java中使用NaN执行任何操作都会导致此操作的结果为NaN。

对不起,我的意思是*而不是+。旧代码,我的坏代码在乘法时仍然有错误,真的认为你得到了好答案。那么..你能给出错误吗?我是说。。。0*任何东西都会给0.5%的帮助,解决了这个案子。像这样使用它:(新到这里,所以不能以良好的格式给你代码,抱歉)'code'如果(number1.getText().toString().trim().length()<1){number1calc=0;}否则{number1calc=Double.parseDouble(number1.getText().toString());}'code'
private void calculate()    {
    number1calc=(number1.getText().toString() != "" ) ? Double.parseDouble(number1.getText().toString()) : 0;
    number2calc=(number2.getText().toString() != "" ) ? Double.parseDouble(number2.getText().toString()) : 0;
    multiply=(number1calc*number2calc);
    multiplydisplay.setText(Double.toString(multiply));
if(numberOne.getText().toString().trim().length() < 1 || numberTwo.getText().toString().length() < 1){
    multiplyDisplay.setText("0");
}
else{
    //default handling
}