我正在尝试使用Java Drools触发一个条件;下面是代码片段-
rule "ABC Pass"
when
form: Form_ABC()
$m: Map()
$ABC: Object() from $m["ABC_ID"]
$a: Object() from $m["ABC_26_a"]
$b: Object() from $m["ABC_26_b"]
Map (Double.valueOf($a.toString()) < 0 && Double.valueOf($b.toString()) < 0)
then
System.out.println("ABC Rule Pass tt"
+ $ABC.toString()
+ "tField 1 is: " + $a.toString()
+ "tField 2 is: " + $b.toString());
end
所以,当ABC_26_a &ABC_26_b小于零。需要注意的是,这些列有空/空字符或特殊字符,如$,(,)。
我得到以下错误-
Caused by: java.lang.NumberFormatException: For input string: "-5,099.00"
Caused by: java.lang.NumberFormatException: empty String
你能告诉我最好的处理方法吗?我正在处理的数据集非常小。谢谢。
根据Java语言规范,字符串值"-5,099.00"
不代表浮点字面值,因此Double.valueOf( "-5,099.00" )
抛出异常。
你可以修复你的数据或使用java.text.DecimalFormat转换当前格式为双精度,使用那里可用的parse方法。根据您对所有可能的输入格式的了解来设计格式。