gpt4 book ai didi

java - Jtds SetFloat 在数据库中输入不均匀值(Microsoft Sql Server)

转载 作者:行者123 更新时间:2023-12-02 07:02:20 25 4
gpt4 key购买 nike

我正在尝试使用 setfloat 在 sql server 数据库中输入值

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

我的金额是1.20但在数据库中它输入1.199999523我只想输入 2 位数字,但这组浮点造成问题如何输入浮点值,使其精确到小数点后两位。

我正在使用 Jtds 库连接到 sql server

最佳答案

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

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

关于java - Jtds SetFloat 在数据库中输入不均匀值(Microsoft Sql Server),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16479105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com