hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Zoltan Ivanfi (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-17844) Hive JDBC driver converts floats to doubles, changing values slightly
Date Fri, 20 Oct 2017 19:08:00 GMT

    [ https://issues.apache.org/jira/browse/HIVE-17844?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16213072#comment-16213072
] 

Zoltan Ivanfi commented on HIVE-17844:
--------------------------------------

[~akolb], yes, that's true, but it doesn't represent the initial user-supplied number faithfully
any more.

If the user supplies the value 125.32, it can not be represented as a float precisely, but
rounding rules during displaying that float will still display 125.32. However, when converting
that float to double, different, more precise rounding rules start to apply, resulting in
125.31999969482422 getting displayed instead of 125.32. It is true that the double value is
precisely the same as the float value, yet although none of them is precisely the same as
the user-supplied value, the float gets displayed as the original value and the double isn't.

If 125.32 is stored directly to a double, then it is approximated more precisely and will
display correctly. When it is stored as a float and then converted to a double, this is no
longer true.

> Hive JDBC driver converts floats to doubles, changing values slightly
> ---------------------------------------------------------------------
>
>                 Key: HIVE-17844
>                 URL: https://issues.apache.org/jira/browse/HIVE-17844
>             Project: Hive
>          Issue Type: Bug
>          Components: JDBC
>            Reporter: Zoltan Ivanfi
>
> When querying data through Hive's JDBC driver, float values are automatically converted
to doubles and will slightly differ from values seen when directly querying the data using
a textual SQL interface.
> Please note that by slight difference I don't only mean additional zeroes at the end,
but an actual numeric difference in the displayed value. This is the result of the different
precision used when displaying double values, as discussed [here|https://stackoverflow.com/questions/17504833/why-converting-from-float-to-double-changes-the-value],
for example.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message