4

我创建了用于除数的 android 应用程序。

int a,b;

int result = a/b;

if (result==decimal){

Log.v ("result","your result number is decimal")

} else {

Log.v ("result","your result number is not decimal")

}

如何检查是否result是小数?

4

4 回答 4

15

使用模运算符检查是否有余数。

if(a % b != 0) Log.v("result", "The result is a decimal");
else Log.v("result", "The result is an integer");
于 2013-02-10T16:40:26.483 回答
2

int不会保留小数,它们总是取结果的底数:例如3 / 5 = 0作为int. 也就是说,您可以使用模 ( %) 来确定小数是否被丢弃。

if(a % b > 0) { // 3 % 5 = 3
    // Decimal places will be lost
}
于 2013-02-10T16:40:13.427 回答
2

您可以使用模除法来检查数字是否为小数。假设您使用模数并将数字除以 1。如果它是整数(数学,而不是 java),则余数应该是 0。如果是小数,它应该是除 0 以外的任何值。例如,这个片段代码:

double number = 23.471;
if (number % 1 != 0)
    {
    System.out.print ("Decimal");
    }
else
    {
    System.out.print ("Integer");
    }

在这种情况下,它将输出“十进制”,因为余数不等于 0。

现在这在一个完整的程序中会是什么样子?下面的简单程序应该允许输入数字,然后输出数字是整数(数学)还是小数。

import java.util.*;

public class TestClass
{
    public static void main (String [] args)
    {
        Scanner keyboard = new Scanner (System.in);
        System.out.print ("Enter a number: ");
        double number = keyboard.nextDouble ();
        if (number % 1 != 0)
        {
            System.out.print ("Your number is a decimal!");
        }
        else
        {
            System.out.print ("Your number is an integer!");
        }
    }
}
于 2021-02-18T05:25:19.077 回答
1

您还可以检查字符串是否包含..

String.parseString(decimalNumber).contains(".");
于 2013-02-10T17:00:35.150 回答