java怎么判断为正整数_java中如何判断一个数是否为正整数(多种种方式比较有意思)对时间处理也可以...

这是在贴吧看到的一个小问题.当时回了一个.后来又引来很多朋友的讨论.感觉有点启发.所以写出来分享一下

其中思路回来倒了两次

public class ddd {

public static void main(String[] args) {

double tmp, number;

Scanner one = new Scanner(System.in);

System.out.print("请输入一个正整数:");

number = one.nextDouble();

// System.out.println(number);number = 9.1

tmp = number * 2;

// System.out.println(tmp); tmp 18.2

// System.out.println((int)tmp);18

// 判断这个数是不是正整数

while (number <= 0 || tmp % 2 != 0)// 如何将9.0也当成一个正整数?????????????

{

System.out.print("您输入的数字不是正整数,请重新输入:");

number = one.nextDouble();

}

/*if (number == 2 || number == 3) {

System.out.println((int) number + "是一个素数!");

}*/

}

}

我开始认为强转一下即可,后来发现如果强转以后用会出问题(如取值范围和包装类之间自动取舍等),

所以想到了用String转换,String的强大可以做很多事.但也增加了代码量.可以使用简化版:

还加上string正则表达式,format方法 就比较简单了.不仅对整数,对时间等都可以解决一定问题.如下:

Data data = new Data();

String str=String.fromat("%te",date);

这种判断很强大的.不是吗?"%d" 就是判断是否整数

String aa= "432.34";

int a =34;

String str=String.format("%b",aa);

System.out.println(str);   //true

System.out.println("%d",a/2);

double a =34.33;

String a2=String.format("%e",a/2);

System.out.println(a2);//转为十进制

System.out.println(String.format("%s", a2));//转为字符串

要记的就是%+e,a,d这些.有兴趣可以多试一下.

会常遇到:java.util.IllegalFormatConversionException

后来又有人写了下面强的.这个真不错.我当时没想到.

if(x - (int)x < 0.0000001) //精度自己设置

整数

else

非整数

有兴趣的朋友可以来说说.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值