我从数据库中检索到数据,例如sum(amount),它显示负值,例如-12447904888.15,在SQL中,value列数据类型为double。在Java中,我们可以在运行此列时将其声明为Bigdecimal数据类型,但我遇到错误java.lang.double无法将其转换为java .math.decimal,因此如何解决该问题
const handleClick2 = () => {
console.log('handleClick2 executed...');
this.x=3
}
答案 0 :(得分:4)
这里:
(BigDecimal) data[1]
是广播。强制转换的意思是:“程序员知道,data[1]
的实际类型是BigDecimal。所以,亲爱的编译器,请允许我使用像BigDecimal的实例”。
事情是:当然,在运行时,该类型必须与您告诉编译器的类型匹配!但是您的数据库将向您返回double
变量。而double
不是不是BigDecimal
!
换句话说:当您要将某事物视为BigDecimal时,该事物必须成为。您可以尝试使用BigDecimal.valueOf(data[1])
来代替,这将根据来自数据库的值创建一个BigDecimal实例。有关更多指导,请参见here。
(和提示:您的其他强制转换(String) data[0]
可能起作用,因为data [0]实际上是一个String对象)