gpt4 book ai didi

java - 检查 Java 中的有效 double

转载 作者:行者123 更新时间:2023-12-01 21:10:25 24 4
gpt4 key购买 nike

我想检查String是否包含Double而不是Integer。我就是这样工作的;

 private boolean isDouble(String str) {
try {
Double.parseDouble(str);
return true;
}
catch(NumberFormatException e) {
return false;
}

}

为了检查它,我只是通过了;

isDouble("123");

但它不起作用,在两种情况下都给出true(“123”,“123.99”)。这里出了什么问题?

最佳答案

如果你想检查它是否是一个不能容纳在 Integer 中的数字,你可以四舍五入。例如。利用以下事实:round(1.2) != 1.2,但 round(1) == 1

private boolean isDouble(String str) {
try {
// check if it can be parsed as any double
double x = Double.parseDouble(str);
// check if the double can be converted without loss to an int
if (x == (int) x)
// if yes, this is an int, thus return false
return false;
// otherwise, this cannot be converted to an int (e.g. "1.2")
return true;
// short version: return x != (int) x;
}
catch(NumberFormatException e) {
return false;
}

}

关于java - 检查 Java 中的有效 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41259861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com