[Opgelost] Nauwkeurigheid

Bespreek het databaseprogramma
GJG
Berichten: 3
Lid geworden op: do apr 15, 2010 9:38 am

[Opgelost] Nauwkeurigheid

Bericht door GJG »

Ik heb een hele grote .csv-file met heel veel getallen (>300MB). Deze kan ik in Base inlezen als Table. Dan kan ik middels een query er selectief data er uitlepelen.
Het probleem is dat ik nauwkeurigheid van de getallen verlies. Hoe kan ik dat verhelpen...........

Als ik de table in Base open zie ik dat de ene kolom als Number is gedefinieerd, met 2 cijfers achter de komma, een andere kolom als text met heel veel cijfers achter de komma. Hoe Base aan die indeling komt is mij een raadsel. Als ik de number-kolom beter bekijk zie ik dat er veel meer getallen achter de komma zijn. Ik kan het aantal zichtbare decimalen rustig uitbreiden naar 10 :shock:, maar dat is allemaal visueel. De csv-file op de harde schijf verandert niet (ik kan de data niet opslaan). Dus hoe Base deze tabel inleest verandert ook niet. Dat merk ik nl. als ik de query uitvoer (eenvoudig filter op grootte). Ik krijg dan een tabel met de gefilterde data maar met slechts 2 decimale cijfers voor de number-kolom. En 10 voor de text kolom. :cry:

Hoe kan ik daar meer controle over krijgen....................

BVD, GJG
Laatst gewijzigd door eremmel op vr apr 16, 2010 1:20 pm, 2 keer totaal gewijzigd.
Reden: markeer als opgelost
Versie: Openoffice 3.0.0 Build 3.0.0.9
Systeem: openSUSE
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Nauwjeurigheid

Bericht door RPG »

Hallo

Ik begrijp gedeeltelijk je probleem maar ik lees niets over het gewenste doel wat je wil bereiken?
Misschien heb je iets aan dit hier?
Het is ook niet altijd eenvoudig om het in een keer goed te verwoorden.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
GJG
Berichten: 3
Lid geworden op: do apr 15, 2010 9:38 am

Re: Nauwjeurigheid

Bericht door GJG »

Dank voor het snelle oppikken. Jouw verwijzing zit in de goede richting. Ik mis alleen de link met het flter (de query).

Mijn doel is dat met het uitlepelen (=filteren met een query) van de data uit de grootte tabel, de nauwkeurigheid behouden blijft, ofwel >10 decmiale cijfers. Nu is het getal '0.000113244352' na filteren veranderd in '0.00'. Daar heb ik niets aan.

In de oorspronkelijke tabel hebben alle getallen >10 decimale cijfers. Dat kan ik zien als ik de tabel met Base open. Het mogelijke probleem (maar dat weet ik niet zeker) is dat Base bij het filteren achter de schermen een bepaald format voor de kolommen hanteert (text en numbers). Bij format 'text' blijven dan alle decimalen behouden, bij format 'number' slechts 2. Dat Base de kolommen in deze twee formats herkent kan ik zien als ik de tabel open en de properties van de kolommen opvraag.

Iets duidelijker zo?



In de query staat
________________________
SELECT *
FROM <filenaam>
WHERE "[Z]" > 19.7
__________________________

Dus heel simpel: selecteer alle data uit <filenaam> waarvan [Z} groter is dan 19.7.
Base leest dus direct uit de file. Dat gaat automatisch. Kan ik misschien een regel toevoegen over het te hanteren format van lezen/wegschrijven?


BVD, GJG
Versie: Openoffice 3.0.0 Build 3.0.0.9
Systeem: openSUSE
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Nauwkeurigheid

Bericht door RPG »

Hallo

Ik heb het idee dat de interne nauwkeurigheid anders is dan de getoonde nauwkeurigheid.
Dan kun je alleen controleren door enige berekeningen uit te voeren.
Met welke database engine werk je?
zie links onder het venster.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
eremmel
Berichten: 670
Lid geworden op: di sep 01, 2009 10:11 am
Locatie: Barneveld, Nederland

Re: Nauwkeurigheid

Bericht door eremmel »

Ik meen te weten dat de properties van het aantal decimalen bij velden van het type double/float geen betrekking hebben op het opslag formaat in de database, maar meer op het weergave-formaat van deze data.
Als u een query maakt en dan op het kop-veld (header-field) van de desbetreffende kolom met de rechtermuisknop klikt en dan 'kolomopmaak...' kiest kunt u het aantal decimalen instellen.
W11 21H2 (build 22000), LO 7.4.1.2(x64)
Het is Microsoft marketing die laat geloven dat computers geschikt zijn voor niet technici
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Nauwkeurigheid

Bericht door RPG »

Hallo

Kan het probleem ook eerder liggen?
Ik heb zelf testjes gedaan met input van een CSV waarbij de decimale afscheiding ook een comma is. Als ik dat probeer te verwerken met een text database dan worden de getallen wel getoond maar feitelijk blijft het een string er is dan niet nauwkeurig mee te rekenen.

Ik denk dus dat het probleem beter gedefinieerd moet worden
a) hoe importeer ik de data.
b) Wat wil ik er mee doen.

Ook importeren in een spreadsheet geeft problemen want dan veranderd het ook naar tekst.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
GJG
Berichten: 3
Lid geworden op: do apr 15, 2010 9:38 am

Re: Nauwkeurigheid

Bericht door GJG »

Het is opgelost.

Wat ik in Base altijd deed was met de rechtermuis op de query klikken Dan krijg je de gefilterde data uit je database, zonder verdere controle over het formaat, dus 2 decimalen.

Wat ik nu heb gedaan is:
1) met de rechtermuis op de query klikken
2) selecteer 'Open'. Dan krijg je een voorbeeld van de gefilterde data.
4) selecteer de kolommen en kies met de rechtermuis ' Column Format' en maak het op zoals je wil
5) Sluit het voorbeeld.

Als ik dan met de rechtermuisknop de query kopieer en plak in de spreadsheet krijg ik het zoals ik het in het voorbeeld heb opgemaakt.

Bedankt voor de hulp. Al pratende tegen dit forum, dwing je je zelf beter na te denken over wat je nu precies doet. Dan kom je vanzelf bij de oplossing.

GJG
Versie: Openoffice 3.0.0 Build 3.0.0.9
Systeem: openSUSE
Plaats reactie