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