Java 如何检查数字是否为十进制?

Java 如何检查数字是否为十进制?,java,android,Java,Android,我创建了一个用于分割数字的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") } 如何检查结果是否为十进制数?int不会保留十进制数,它们总是以结果为底:例如3/5=0作为int。也就是说,您可

我创建了一个用于分割数字的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")

}

如何检查
结果
是否为十进制数?

int
不会保留十进制数,它们总是以结果为底:例如
3/5=0
作为
int
。也就是说,您可以使用模(
%
)来确定是否要删除小数

if(a % b > 0) { // 3 % 5 = 3
    // Decimal places will be lost
}

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

if(a % b != 0) Log.v("result", "The result is a decimal");
else Log.v("result", "The result is an integer");

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

String.parseString(decimalNumber).contains(".");

可以使用模数除法检查数字是否为十进制。假设你使用模,把这个数除以1。如果是整数(数学,而不是java),则余数应为0。如果它是一个十进制数,它应该是除0以外的任何值。以这段代码为例:

double number = 23.471;
if (number % 1 != 0)
    {
    System.out.print ("Decimal");
    }
else
    {
    System.out.print ("Integer");
    }
在这种情况下,它将输出“Decimal”,因为余数不等于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!");
        }
    }
}

坏主意一些数字格式使用
作为分隔符,例如1.000。如Germany@mikek3332002我不是100%确定。如果我构建的正则表达式只匹配像
9,0
9.0
这样的数字,那么只检查定界符的想法并不坏,我们可以清楚地得到关于这个数字是十进制还是整数的信息。如果我们将
9.0
转换为decimal,那么如果它是decimal或integer类型,我们将丢失信息,如果我们稍后用modulo检查它是哪种类型,则无所谓。