Ga naar inhoud
  • 0

Getallen importeren?


Optic

Vraag

Beste mede-forumleden,

 

Ik zit met het volgende probleem:

 

Vanuit een Excel bestand wil ik getallen importeren in een FMP tabel. Het veld waar ik de getallen in importeer is een getal veld vanuit een 'standaard' veld in het Excel bestand. Echter gaat dit niet helemaal zoals het moet.

 

Het excel bestand bevat bijvoorbeeld 16,67 en filemaker importeert dit als 16,670000000000002.

 

16,6 = 16,600000000000001

0,7 = ,69999999999999996

7,15 = 7,1500000000000004

0,91 = ,91000000000000003

 

Ik snap hier werkelijk helemaal niets van, zie ik iets over het hoofd?

 

 

Alvast bedankt.

 

Gr. Optic

Link naar reactie

14 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Daar heb ik naar gekeken, helaas is dat niet het geval. De notatie van de velden in Excel staat ook op standaard zonder specifieke notatie. Als ik de notatie naar getal zet met max aantal decimalen is 7,15 nog steeds 7,15 en geen 7,1500000000000004.

 

Trouwens ook nog even geprobeerd om 7,15 te exporteren vanuit FMP naar excel en vervolgens weer te importeren...7,1500000000000004 :x

Link naar reactie
  • 0

Ook vreemd is dat excel ook vreemd omgaat met zijn cijfers. Ik heb in excel 2008 (mac) een 7 tal getallen ingevoerd met op de 11e ,12e ,13e enz positie achter de komma een 1, 2, 3 enz. Excel toont dan die getallen ook niet meer? Importeer ik ze in filemaker dan is het helemaal een rommeltje. Zal wel zoals AvD zegt iets met de omzetting te maken hebben. Echter niet alleen filemaker heeft er problemen mee excel zelf dus blijkbaar ook?

5a758dc884a34_Afbeelding1.png.fb4615ac7c6266d2c4560ed4e7c8f3d9.png

Link naar reactie
  • 0

Ik kan dit gedrag met de beste wil van de wereld niet reproduceren.

De getallenreeks uit Excel komt volstrekt overeen met die na een import in FileMaker. Zelfs het getal 7,15 blijft bij een nieuw Excel bestandje na import 7,15, dus daaraan kan het ook niet liggen :wink:

 

Dit is mijn testconfiguratie:

FMPA9v3 ; Vista HP ; Office2003

 

Edit: na lezing laatste post: installeer je mac excel eens opnieuw.

Link naar reactie
  • 0

Inderdaad Rony bij nadere beschouwing treden er (toch) afwijkingen op zoals:

 

16,6 = 16,600000000000001

16,67 = 16,670000000000002

2,22 = 2,2200000000000002

0,07 = ,070000000000000007

 

Ook als ik Excel formatteer op twee decimalen achter de komma krijg ik dit resultaat in FMP, heel vreemd.

Aan de andere kant bij een vers aangemaakt excel bestand waarin ik deze probleemgetallen zet krijg ik een perfect duplicaat in FileMaker.

 

En..als ik in het originele Excel bestand de probleemgetallen overschrijf dan gaat het ook goed.

Link naar reactie
  • 0
Inderdaad Rony bij nadere beschouwing treden er (toch) afwijkingen op zoals:

 

16,6 = 16,600000000000001

16,67 = 16,670000000000002

2,22 = 2,2200000000000002

0,07 = ,070000000000000007

 

Ook als ik Excel formatteer op twee decimalen achter de komma krijg ik dit resultaat in FMP, heel vreemd.

Aan de andere kant bij een vers aangemaakt excel bestand waarin ik deze probleemgetallen zet krijg ik een perfect duplicaat in FileMaker.

 

En..als ik in het originele Excel bestand de probleemgetallen overschrijf dan gaat het ook goed.

 

Ja, maar als je het vervolgens weer exporteert en importeert zijn de decimalen weer terug :(

 

Ik hoop dat iemand anders een oplossing heeft voor dit probleem, na 2 dagen wordt het toch wel erg warm onder de voeten gezien het om enkele 10-duizenden records met deze getallen gaat. Handmatig aanpassen is geen optie en berekeningen om af te ronden is wat omslachtig.

Link naar reactie
  • 0

Hou er in het algemeen rekening mee dat zogenaamde floating point berekeningen een beperkte precisie hebben. Dat geldt voor FileMaker maar ook voor andere programma's. FileMaker laat daar op zich geen steken vallen, het ligt in de aard der dingen.

 

De precisie ligt bij FileMaker standaard vast op 16 decimalen. Vandaar het resultaat. Op de "16de decimaal" gebeurt inderdaad een afronding, blijkens de voorbeelden. Overigens kan je met de functie SetPrecision() de precisie verhogen. Verlagen zou theoretisch ook kunnen, maar werkt (blijkbaar) niet, tenzij iemand het tegendeel kan bewijzen?

 

- Jeroen

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...