0

I am trying to input values in sql server database using setfloat

jtdsproc.setFloat(12, nb.getOpenAmount());

My amount is 1.20 But in database it is entering 1.199999523 I just want to enter till 2 digits but this set float making Problem How to enter float value so that it goes till two decimal .

I am Using Jtds Library to connect to sql server

4

1 回答 1

2

您不能使用浮点数精确表示数字 1.2。这是因为 1.2=6/5 的分母不是 2 的幂。如果这些事情很重要,通常你会设计你的数据库方案来存储固定数量的小数。在这种情况下,即使 Java 正在传输一个不完全等于 1.2 的值,数据库仍然会存储一个正好是 1.2 的值。

作为替代方案,您可以尝试将值作为字符串传输。您可以使用 aDecimalFormat生成具有固定位数的表示,然后将该字符串传输到数据库并让它处理转换为数据库服务器上的内部表示。这是否更好取决于数据库服务器是否具有比单精度浮点更高的精度。如果不是,则存储的数字可能与以前相同。

于 2013-05-10T13:17:51.910 回答