2017-05-18 15 views
0

oracleから浮動小数点を読み取る際に問題があります。 私は次のコードを持っている:oracleを読んだあとjythonの浮動小数点精度

sqlstr='select prio from tabletest' 
statement = None 
if connection is not None: 
    try: 
     statement = connection.prepareStatement(sqlstr) 
     if connection is not None: 
      rs = statement.executeQuery() 
      if rs is not None: 
       #statement.closeOnComplete() 
       while (rs.next()): 
        NWW = rs.getFloat(1) 
        print (NWW) 
       rs.close() 
      else: 
       statement.close() 
    except: 
     pass 
    finally: 
     connection.close() 

これは私にこれを取得します。

0.5 
0.5 
0.5 
0.20000000298 
0.5 
0.990000009537 
0.5 
0.5 
0.699999988079 

が、デシベルで私の実際のデータは、次のようになります。

0,5 
0,5 
0,5 
0,2 
0,5 
0,99 
0,5 
0,5 
0,7 

デシベル以下のように定義されます。

CREATE TABLE "SYSTEM"."tabletest" 
    (  "NWW" NUMBER(12,8) 
    ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING 
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) 
    TABLESPACE "SYSTEM" ; 

あなたが見ることができるように、浮動小数点は、prio = 0.5を持つだけ正確です...浮動小数点数が正確であることを設定できるオプションはありますか?

おかげで、 E.

答えて

0

...ビット恥ずかしいが、rs.getDoubleは、(1)私の問題を解決しました。 :)

関連する問題