2016-09-01 2 views
1

하이브 SQL을 사용하여 두 개의 숫자를 추가하려고합니다.2 자리 10 진수 추가 Hive SQL

select 4.6 + 3.1 from <table> => 7.699999999999999 

그러나,

select 4.7 +3.2 from <table> => 7.9 

는 이해가 예상되는 출력을 줄 것이다 결과의 반올림 이 있지만, 문제는 왜 처음부터이 다른 행동?

아파치 스파크 1.6.2에서 하이브 2.11 (하이브 컨텍스트)을 사용하고 있습니다.

답변

1

당신이 관찰 한 것은 Hive에만 해당되는 것이 아닙니다. 예 : 또한 https://en.wikipedia.org/wiki/Floating_point#Internal_representation

참조 : 그것은 두 배 번호가 일부 언어 (부동 소수점) 메모리에 저장하는 방법에 관련이

Python 2.7.10 (default, Oct 23 2015, 19:19:21) 
>>> 4.7+3.2 
7.9 
>>> 4.6+3.1 
7.699999999999999 

+0

죄송합니다. d elay !. 대답 해줘서 고마워. 수락 됨. – Aiden

관련 문제