在下面的方法中,我需要定义只在值不为null且大于"0.00"时设置值。我该如何定义它。
String postagePaid1 = trackInfo.getPostage();
if(postagePaid1 != null && ????) {
claim.setClPtsPostageFee(new BigDecimal(postagePaid1));
}
不能用字符串进行数字比较,因为它在字符串世界中没有意义,只能用数字进行比较。因此,首先检查它是否为空,如果不是,则通过Double.parseDouble(...)
将其转换为双精度
if (someStr != null && !someStr.trim().isEmpty()) {
try {
double someNumber = Double.parseDouble(someStr.trim());
if (someNumber > 0.0) {
// ***** here you are ****
}
} catch (NumberFormatException nfe) {
// some action if String is not numeric
}
}
在比较过程中不要将字符串值用作替身。字符串比较是按自然顺序进行的,因此"1111"
将小于"9"
。
在您的情况下,使用Double.parseDouble(doubleString)
,然后比较值。
如果postagePaid1
只包含双类型值,则必须使用以下代码将字符串转换为双类型,以便能够进行比较
Double.parseDouble(postagePaid1)
所以如果语句变成:
if(postagePaid1 != null && Double.parseDouble(postagePaid1)>0.00) {