java中如何判断一个数是否为正整数(多种种方式比较有意思)对时间处理也可以
2014-02-11 16:34
871 查看
这是在贴吧看到的一个小问题.当时回了一个.后来又引来很多朋友的讨论.感觉有点启发.所以写出来分享一下
其中思路回来倒了两次
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
非整数
有兴趣的朋友可以来说说.
其中思路回来倒了两次
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
非整数
有兴趣的朋友可以来说说.
相关文章推荐
- offer题11 数值的整数次方&判断浮点型是否相等&降低求n次方的时间复杂度&3种错误处理方式
- JAVA--第十周作业编写之一个Teacher类负责给出算术题目,随机给出两个整数并进行运算,并判断回答者的答案是否正确;编写一个GUI类ComputerFrame,回答者可以通过GUI看到题目并给出
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
- java 如何判断一个数是否为2的整数次幂
- java中如何判断一个String 是否可以强制转换成Integer
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
- JVM如何判断一个Java对象是否可以回收
- 如何快速判断一个整数是否可以整除另一个整数的理论分析
- 如何判断一个整数数组中是否有重复元素?要求时间复杂度O(n),空间复杂度O(1)
- JVM如何判断一个Java对象是否可以回收
- 如何判断一个整数x是否可以表示成n个连续正整数的和
- Java 如何判断一个时间是否是昨天
- 如何快速判断一个整数是否可以整除另一个整数的理论分析
- java中判断字符串是否是一个整数(转载)
- 2个二叉树A、B,树的每个节点上都有一个整数值。如何判断A与B是否其中一个是另一个的子树?
- 当JAVA WEB服务器端有一个执行时间长的方法,应该如何处理?
- 给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?
- 题目1.请给出一个运行时间为O(nlgn)的算法,使之能在给定一个由n个整数构成的集合S和另一个证书x时,判断出S中是否存在有两个其和等于x的元素。
- 如何判断一个C++对象是否在堆栈上(通过VirtualQuery这个API来获取堆栈的起始地址,然后就可以得到答案了),附许多精彩评论