在Java中是否可以在小数点后获得双精度值?
double number = 1.6
如果小数部分为 6(如2.6 或 98.6),我希望我的代码生成错误消息。如果不是6,我只想打印“正确”。
如何检索双精度的小数部分?
在Java中是否可以在小数点后获得双精度值?
double number = 1.6
如果小数部分为 6(如2.6 或 98.6),我希望我的代码生成错误消息。如果不是6,我只想打印“正确”。
如何检索双精度的小数部分?
严格来说:不可能 - 原因:double永远不能包含正好为 0.6 的小数值(没有以 .6 结尾的数字完全可以表示为 double)。
但是您可以检查四舍五入的字符串表示是否为 0.6:
DecimalFormat f = new DecimalFormat("#0.0");
String s = f.format(mydoublevalue);
if (s.contains(".6")) {
// error
} else {
// correct
}
String stringNumber=""+number;
if(stringNumber.contains(".6"){
promt user
}
您可以将双精度数取底,从双精度数中减去该值,然后留下小数部分以供检查。
double number = 2.6;
double numberWholePart = Math.floor(number);
double numberFractionPart = number - numberWholePart;
if(numberFractionPart == 0.6) {
System.out.println("error!");
}
试试这个:
if(number - Math.floor(number) == 0.6){
prompt error
}