如何使用java的ResultSet获取mysql的float的精确值

Posted

技术标签:

【中文标题】如何使用java的ResultSet获取mysql的float的精确值【英文标题】:How to use ResultSet of java to get precise value of float of mysql 【发布时间】:2015-10-21 15:36:54 【问题描述】:

在Java中是否有可能,我使用ResultSet,来获得float的精确值mysql

在我的mysql数据库中,我有一些float的值很长(例如123456789,超过7位),我知道如果我使用select round(float_value_column,0)我可以得到精确的值。但是如果我使用java的ResultSet.GetFloat,我只能得到四舍五入的值(123457000,就像在mysql中我做了select float_value_column一样)。

请问,如果我使用ResultSet.GetDouble,我可以得到准确的值吗?或者我可以喜欢ResultSet.GetFloat(round(float_value_column,0))吗?

非常感谢

【问题讨论】:

BigDecimal 呢? 嗨,alkis,非常感谢您的回复。你是什​​么意思BigDecimal,你的意思是在Java或Mysql中?谢谢 @martinwang1985:你试过打电话给ResultSet.getDouble吗? 【参考方案1】:

你可以试试下面的代码

ResultSet rs = .....

    BigDecimal myValue = rs.getBigDecimal("Column Name");
            float myFloatValue = myValue.floatValue();

更多关于BigDecimal here。

你也可以看看这个SOW post。

【讨论】:

以上是关于如何使用java的ResultSet获取mysql的float的精确值的主要内容,如果未能解决你的问题,请参考以下文章

executeQuery Mysql 中的 ResultSet 为 false - Java 即使行存在

如何从 java.sql.ResultSet 获取列名列表 [重复]

如何从子查询中获取 ResultSet 的别名?

如何在java中获取Resultset的长度或大小[重复]

来自ResultSet java的getDateTime

Java如何获取ResultSet结果中的每一列的数据类型