用户输入为: 44.4
存储到数据库时,转换为:44.40000153
数据库数据类型为:浮动,长度为: 20,8
这里我想准确存储44.4
我不想改变数据库设计。
答案 0 :(得分:3)
然后不要使用float
。在数据库中使用number(10,5)
(或者您需要多少位数),在Java中使用BigDecimal
。
BigDecimal
为您提供无限数量的数字,但在数据库中,可以存储的内容有限制。通常是38位数(通常足够)。
答案 1 :(得分: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;
强>
我在这里使用了CAST
它显示了你的预期结果。