Avatar billede nzc Nybegynder
20. juni 2004 - 22:26 Der er 6 kommentarer og
2 løsninger

Konverteringsproblemer fra double

Hej!

Jeg har et enormt stort tal som jeg har gemt i en double. Men når jeg vil lave en select på min database går det helt galt hvis jeg bruger double. I stedet for et tal så skriver den noget med 3.434344E+13 og det ka mysql sq ikke forstå :) Jeg har derfor prøvet at konvertere doublen til en long men hvis jeg gør det så bliver tallet ikke det samme o_O Hvordan konverterer jeg en double til et helt tal uden E+23 og uden jeg får ændret mit tal???

NZC
Avatar billede arne_v Ekspert
20. juni 2004 - 22:31 #1
3.434344E+13 er jo et stort tal 3.434344 * 10^13

Er det en forkert værdi ?

Almindelig type cast til long burde være OK.

Og jeg forstår ikke helt om det er gem eller hent fra MySQL der
giver problemer - please give details.
Avatar billede nzc Nybegynder
20. juni 2004 - 22:41 #2
mit tal som double 6.3223329841722176E+17
mit tal som long 632233298417221760
mit tal i db 632233298417221809

MySQL forstår ikke 6.3223329841722176E+17. Det er jo ikke et tal når der står E deri.

Jeg trækker tallet ud af db og der trækker jeg det ud i en double og der ser det ud til at det går galt. Måske jeg skulle bruge en long til at trække tallet ud i i stedet for en double ?

Jeg bruger senere tallet til at hente andre data ud med og der går det også galt for der er tallet jo forkert.
Avatar billede arne_v Ekspert
20. juni 2004 - 22:44 #3
6.3223329841722176E+17 og 632233298417221760 er præcis det samme så det er OK

632233298417221809 afviger en lille smule, men da tallet har 18 cifre og
double kun granterer 15-16 cifres nøjagtighed så er det også OK.
Avatar billede arne_v Ekspert
20. juni 2004 - 22:46 #4
Har du overvejet at bruge C# decimal og MySQL NUMERIC ?

Jeg er sikker på at du meget bedre vil kunne enes med dem.
Avatar billede arne_v Ekspert
20. juni 2004 - 22:47 #5
Hvis du indersætter via Parameters så undgår du problemet med E+17.

Hvis du indsætter via rå SQL string, så skal du have den double formateret
lidt anderledes.
Avatar billede arne_v Ekspert
20. juni 2004 - 22:47 #6
Jeg håber ikke at jeg snakker for meget sort.
Avatar billede nzc Nybegynder
21. juni 2004 - 20:09 #7
Før trak jeg data ud fra db i en double og når jeg skulle evaluere tilbage på db med denne double fik jeg probs. Jeg har nu ændret doublen til en long og nu virker det bare :)

Jeg sætter ikke ind parametre ind i min sql string, men laver derimod en lang rå string. Dette kunne jeg selvfølgelig kigge lidt på.

Smid lige et svar arne_v så får du lige lidt points :)
Avatar billede arne_v Ekspert
21. juni 2004 - 20:10 #8
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester