哪种数据类型用于sum(amount),该量为负值

时间:2019-05-03 11:30:11

标签: java

我从数据库中检索到数据,例如sum(amount),它显示负值,例如-12447904888.15,在SQL中,value列数据类型为double。在Java中,我们可以在运行此列时将其声明为Bigdecimal数据类型,但我遇到错误java.lang.double无法将其转换为java .math.decimal,因此如何解决该问题

 const handleClick2 = () => {
    console.log('handleClick2 executed...');
    this.x=3
 }

1 个答案:

答案 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对象)