通过 java 调用 sp 时插入错误值

Inserting wrong values while sp being invoked through java

我试图通过 Java 调用的 SP 在 Sybase 数据库中插入一个 Numeric(9,2) 值。但是当通过 java 传递 8789.22 时,SP 在 table.

中插入 8789.00

最初我使用的是 Double,但我尝试使用 BigDecimal 并且成功了。

示例:

Double amt = 2408.22;
BigDecimal bAmt = new BigDecimal(amt);
bAmt = bAmt.SetScale(2,RoundingMode.CEILING);
/* since the data type of amt in sp is Numeric(9,2)*/
/* The SP call was made here with bAmt as input parameter. */

如果您不将其缩放到小数点后 2 位,则它可能无法工作。