java语言中 如何判断 一个 double形变量a 是否是整数

Scanner sc = new Scanner(System.in);
System.out.println("请输入double类型的数字:");
double d = sc.nextDouble();
int i = String.valueOf(d).indexOf(".");
if(d%Integer.parseInt(String.valueOf(d).substring(0, i))==0){
System.out.println("输入的数字是整数");
}else{
System.out.println("输入的数字不是整数");
}

lic static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入double类型的数字:");
double d = sc.nextDouble();
if((int)d == d){ //强制转换后会丢失精度,如果丢失精度的数和原数相等,说明就是整数
System.out.println("输入的数字是整数");
}else{
System.out.println("输入的数字不是整数");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-09-13
我也觉得你这个方法看起来不太准确,应该强制转换成整数比较是否和当前的数是否相等
第2个回答  2017-09-13
a==(int)a

不等于就是带小数咯
第3个回答  2017-09-13
String s = "10.0";
double d = Double.parseDouble(s);
int i = Integer.valueOf(String.valueOf(s).substring(0, s.indexOf(".")));
System.out.println(d==i);

判断测试一下就好
第4个回答  2017-09-13
Math.abs(xMath.round(x)) <= 0.000000001
相似回答