2017-05-18 3 views
0

Ich habe Probleme mit dem Lesen schwimmt aus Orakel. Ich habe folgenden Code-Schnipsel:jython Float Präzision nach dem Lesen Orakel falsch

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() 

dies wird mir diese:

0.5 
0.5 
0.5 
0.20000000298 
0.5 
0.990000009537 
0.5 
0.5 
0.699999988079 

aber meine eigentlichen Daten in der DB wie folgt aussehen:

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

die db ist definiert als:

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" ; 

wie Sie sehen können, sind die Schwimmer nur präzise mit prio = 0,5 ... Gibt es eine Option, die ich einstellen kann, dass die Schwimmer präzise sind?

Dank, E.

Antwort

0

... ein bisschen peinlich, aber rs.getDouble (1) gelöst mein Problem. :)