2017-07-24 37 views

回答

3

然后请不要使用float。在数据库中使用number(10,5)(或者需要多个数字),在Java中使用BigDecimal

BigDecimal为您提供了无限数量的数字,但在数据库中存在限制。通常是38位数字(即通常就足够了)。

+0

谢谢..但我不能改变固定的数据库。 –

+2

然后,您不能在该列中精确地存储“44.4”。您可以尝试在使用“NumberFormat”进行显示之前将其四舍五入。 – Thilo

+0

在数据库中存储任意精确值的一个选项是将它们存储为字符串并将其转换为/从BigDecimal转换。尽管如此,您仍然无法在查询中对它们执行数字操作。 – Raniz

1

field float(20,1)

您可以尝试使用上面的变化。

让它20,1

我曾试图下同

create table abc(field float(20,1)); 
insert into abc value(44.4); 
select * from abc 

或者,如果你是无法改变的数据库,然后用下面去查询

select cast(field as decimal(10,1)) from abc;

在这里,我哈哈d used CAST

它显示了我的预期结果。