".fits"테이블에 저장된 값이 있습니다 (이 문제는 없어야 함). 나는 테이블을 읽고,이 실제 보관 된 값입니다인쇄 및 읽기시 Python의 다른 값
In [2]: a['RA_touse'][0]
Out[2]: 161.65813
을한다. 그러나 다음을 수행합니다.
In [3]: print a['RA_touse'][0]
161.658
잘린 값이 표시됩니다. 나는 POSTGRES와 함께 python을 사용하고 있는데,이 동작은 정밀도에 문제가있다.
아무도 나 에게이 동작을 설명하고, 어떻게 해결할 수 있을까요? 내 데이터를 변경하지 않고 같은 형식으로 유지해야합니다 (즉, repr() 함수는 모든 것을 문자열로 변환합니다).
고맙습니다. 선명도
편집 :
나는 데이터베이스를 만들 파이썬 스크립트를 사용하고 있습니다. 내가하는 일은
con = psycopg2.connect('todatabase')
cur = con.cursor()
for i in vector_of_something:
value1 = table['column1'][i]
value2 = table['column2'][i]
values = (values1,values2)
values = [str(value) for value in values]
command = 'INSERT INTO table values (%s,%s)'
cur.execute(command,values)
con.commit()
문제는 내가 대신 1.65813의, 결과로 데이터베이스에 "161.658"얻을입니다.
파이썬과 DB 모두 어떤 데이터 유형을 사용하고 있습니까? 부동 소수점 값에 대한 10 진수 표현을 사용하려고하면 정밀도가 떨어집니다. 또한 저장된 값의 정밀도 손실을 실제로 반영하지 않는 인쇄용 숫자의 서식을 지정할 때 발생하는 잘림이 있습니다. –
이 경우에는 수레를 사용하고 있습니다. 나는 다음과 같은 것을 가지고있다. value = a [ 'RA_touse'] [0] 문자열로 변환하고, postgresql에 업로드한다. –
편집 후. POSTGRES에 값을 String이 아닌 숫자 형으로 저장하지 않는 이유는 무엇입니까? – Shane