Laden...

Oracle hängt bei einer Nachkommastelle 0 an Zahl

Erstellt von zerberos vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.900 Views
Z
zerberos Themenstarter:in
520 Beiträge seit 2007
vor 13 Jahren
Oracle hängt bei einer Nachkommastelle 0 an Zahl

Hallo,

ich rufe Daten aus einer Oracle Datenbank ab. Das Feld dort hat das Format NUMBER.

Ich hab jetzt ein Problem.

Wenn im Feld 1,22 steht, dann wird auch 1,22 ausgegeben. Wenn aber 1,2 in der Tabelle steht dann bekomme ich beim auslesen 1,20 raus.

Sobald die Zahl mehr als 2 Nachkommastellen hat tritt das problem nicht auf. Nur wenn die Zahl eine Nachkommatslle hat wird eine null drangehängt.

Hab schon verschiedene Möglichkeiten ausprobiert: ODBC, System.Data.oracleclient, Oracle.DataAccess. also am Treiber liegt es nicht denke ich.

Muss irgendwas mit .net zu tun haben denke ich

1.552 Beiträge seit 2010
vor 13 Jahren

Hallo zerberos,

liest du die Zahl in einen String ein?
Benutzt du dabei Zahl.ToString("0.00#")?
Wie sieht es bei keiner Nachkommastelle aus?

Gruß
Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

Z
zerberos Themenstarter:in
520 Beiträge seit 2007
vor 13 Jahren

Ne.

ich frage die Daten ab mit nem dataadapter ab und haue diese dann in eine datatable. Und in der DataTable stehen die schon falsch drin. Ich formatiere nichts bzw wandel nichts um

3.825 Beiträge seit 2006
vor 13 Jahren

Im DataTable steht eine Zahl. Und bei einer Zahl ist 1,2 gleich 1,20.

Es ist also eine Frage wie Du das umwandelst.

Im Dot.NET Provider werden alle numerischen Werte in decimal dargestellt, und das hat in der Darstellung nun mal 2 Nachkommastellen.

Benutze Format(...) oder ToString(...) wenn Du ein anderes Format haben willst.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

Z
zerberos Themenstarter:in
520 Beiträge seit 2007
vor 13 Jahren

Im DataTable steht eine Zahl. Und bei einer Zahl ist 1,2 gleich 1,20.

Es ist also eine Frage wie Du das umwandelst.

Im Dot.NET Provider werden alle numerischen Werte in decimal dargestellt, und das hat in der Darstellung nun mal 2 Nachkommastellen.

Benutze Format(...) oder ToString(...) wenn Du ein anderes Format haben willst.

Grüße Bernd

Danke.

Hab jetzt allerding noch nen paar Fragen:

  1. Weißt du zufällig wo ich das nachlesen kann mit dem .net Provider
  2. Warum funktioniert wenn ich ne Access Datenbank per oledb auslese?

Thx

3.825 Beiträge seit 2006
vor 13 Jahren

Hallo Zerberos,

  1. Weißt du zufällig wo ich das nachlesen kann mit dem .net Provider

Nirgendwo. Das merkt man.

  1. Warum funktioniert wenn ich ne Access Datenbank per oledb auslese?

Weil da der Datentyp anders ist, z.B. double oder float. Oder int.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3