Ga naar inhoud
  • 0

Import uit sql floating point probleem?


willem

Vraag

Ik loop tegen het volgende probleem aan, ik moet data uit een sql server importeren waarbij er 1 veld is die met een floating point is gevuld.

Als ik dit veld importeer in Fm dat gaat het over het algemeen wel correct, echter daar waar er een tot de macht tevoorschijn komt kan ik er niets meer mee.

1.6980229999999999E-2 kan ik niet meer normaal vertalen zonder allerlei hulptrucen uit de kast te trekken.

Ik loop eigenlijk vast op het feit dat ik niet weet hoe ik dit moet omwerken, het lijkt mij dat bij het importeren via odbc uit de sql server al een vertaalslag zou moeten plaatsvinden. Of is er in FM een mogelijkheid dat hij tot de macht berekening automatisch omzet tijdens de import?

Het mooiste zou zijn dat ik tijdens de import een afronding doe omdat ik eigenlijk met het werken op 2 decimalen al voldoende heb.

Link naar reactie

4 antwoorden op deze vraag

Aanbevolen berichten

  • 0
..... zonder allerlei hulptrucen uit de kast te trekken.

 

 

Je hebt toch maar twee berekeningen nodig:

 

Case(Abs(Number) * 10 ^ 25 >= 0; ""; "-") & (Left(Abs(Number) * 10 ^ 25; 1) + ("." & Right(Abs(Number) * 10 ^ 25; Length(Abs(Number) * 10 ^ 25) - 1))) & "E" & (Length(Abs(Number) * 10 ^ 25) - 26)

 

om van nummer naar scientific te gaan, en

 

Left(Scientific Notation; Position(Scientific Notation; "e"; 1; 1) - 1) * 10 ^ Right(Scientific Notation; Length(Scientific Notation) - Position(Scientific Notation; "e"; 1; 1))

 

om terug naar nummer te gaan.

Link naar reactie
  • 0

Mmmm, soms trek ik wel eens te snel een conclusie, sorry :D

 

Code: Selecteer allesLeft(Scientific Notation; Position(Scientific Notation; "e"; 1; 1) - 1) * 10 ^ Right(Scientific Notation; Length(Scientific Notation) - Position(Scientific Notation; "e"; 1; 1))

 

om terug naar nummer te gaan.

 

Met deze formule kom ik toch in de problemen, er staat in mijn getal een punt ipv een komma, dat deed mij denken. Ik gebruik nu de volgende formule en zet het veld om naar nummer en kijk eens wat er dan gebeurd.

GetAsNumber ( Substitute ( VELD ; "." ; "," ))

 

Het lijkt erop dat filemaker nu wel snapt wat ik bedoel, want hij zet nu meteen alles in 1 keer goed neer, 10 ^ verwerkt hij ook gelijk op de juiste plekjes met de komma.

Ik kan nergens in de documentatie vinden dat hij dit ook zou omrekenen, maar mooi meegenomen.

 

Zit er ergens nog een addertje onder het gras?

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...