public static void main(String[] args) {
/**判断num是两位小数*/
Double num = 4.23;
Double numMultip = num * 100;
int numIntValue = numMultip.intValue();
if (numMultip - numIntValue != 0) {
System.out.println("您输入的小数不是两位小数:num= " + num);
System.out.println("您输入的小数不是两位小数:numMultip= " + numMultip);
System.out.println("您输入的小数不是两位小数:numIntValue= " + numIntValue);
}
}
运行结果:
您输入的小数不是两位小数:num= 4.23
您输入的小数不是两位小数:numMultip= 423.00000000000006
您输入的小数不是两位小数:numIntValue= 423
Process finished with exit code 0
总结
计算机无法用二进制表示4.23,导致计算精度与预计的有差池!下次还是用正则表达式去判断小数位数吧!正则判断的可以参考:https://blog.youkuaiyun.com/u012402177/article/details/52604725