Date: prev next · Thread: first prev next last
2019 Archives by date, by thread · List index


Hallo Marino,

zur Ergänzung von Wolfgangs Aussagen hier die betreffenden Eigenschaften der Zelle, in der ich einen Testwert eingegeben habe, ausgelesen mit Xray:
FormulaLocal              string              "28.12.2019 17:11:45"
Formula                   string                 "43827.7164930556"
Value                     double                   43827.7164930556
String                    string              "28.12.2019 17:11:45"

Gruß
Gerhard

Am 28.12.2019 um 20:30 schrieb Wolfgang Jäth:
Am 28.12.2019 um 17:22 schrieb Marino Salvalaggio:
Es tut mir leid, aber hier stimmt etwas nicht...
Es werden bestimmt keine Kommastellen im Speicher verwendet!
Das würde ja bedeuten, dass eine FLOAT bez. REAL in Anwendung wäre.
Nein, DOUBLE.

Das
jedoch wäre mit der erheblichen Tatsache verbunden, dass je nach
rechen-Operanden enorme Abweichungen der tatsächlichen Zeit resultieren
würden.
        => https://de.wikipedia.org/wiki/Gleitkommazahl
        / Eigenschaften einer Gleitkommaarithmetik
Ja, tut es; und ja, in der Tat, Rundungsfehler können im Extremfall bis
in den Nanosekundenbereich druchschlagen.

TIME wird in Millisekunden in INT hinterlegt, darum auch der beschränkte
Umfang von ~±596 Std.
Ich habe keine Ahnung, von welchem Programm du redest, von Calc
jedenfalls nicht; da gibt es überhaupt keinen Variablentyp TIME o. ä.
Und auch in Base aka der Makrosprache gibt es das nicht, höchstens die
/Funktion/ TIME; den Variablentyp /DATE/.

(das reicht nicht mal für einen Monat ~720h, aber für ms-genaue
Wochenuhren und Funktion-Timer prädestiniert)

Zeit und Datum DATE_AND_TIME werden daher im Speicher immer Binär in
Anzahl Sekunden ab Fixpunkt hinterlegt.
*Alle* Daten, sogar Texte, werden intern binär abgelegt. Und Calc selbst
kennt überhaupt nur 3 Datentypen, nämlich String aka Text, Integer und
Gleitkomma aka Double.

Bei 32Bit DINT
Was bitte ist ein DINT? Meinst du etwa LONG?

ergibt das einen Umfang von ± ~68 Jahren vom gesetzten
Bei einem DOUBLE ergibt sich ein Wertebereich von rund 4,93E+305 Jahren.
Zum Vergleich, das Universum ist überhaupt erst ca. 1,37E+010 Jahre alt.
Der Wertebereich reicht also durchaus noch ein paar Monate. Aber ja, mit
Werten größer/kleiner ca. +/- 1,80E+308 kann Calc nicht mehr rechnen.

Die Rechnung an sich ist trivial:
1Min = 60 Sek
1Std = 60 Min Bez. 3600Sek.
Tag = 60*60*24 = 86400 Sekunden.
Somit können Zeiten Addiert, Subtrahiert u. u. u. werden ohne dass
spezielle Interpretationen benötigt werden.
Im Prinzip ist deine Schlussfolgerung schon richtig. Aber sie gilt
natürlich genauso, wenn 1 Sekunde als 1/86400 Tag aka
0,00001157407407407410 Tage repräsentiert wird. 2 Sekunden ist in beiden
Fällen das doppelte, 86400 Sekunden ist in beiden Fällen das
86400-fache, usw.; völlig problemlos, und ohne spezielle
Interpretationen. Das würde sogar funktioneren, wenn du den Wert Pi für
1 Sekunde (oder 1 Tag, 1 Woche, 1 Jahr, 1 Millisekunde, oder sonst was,
sogar mit sieben drittel Stunden, oder fünfundzwanzig
siebenunddreißigstel Wochen, usw.) an nimmst.

Da eine INT Zeit die in INT dividiert wird ohne Rest zurückgegeben wird
(keine Rundung) kann diese direkt z.B. mit 60 geteilt werden und ich
erhalte die Zeit in Minuten - u.s.w.
Und was bitte machst du mit Millisekunden usw.?

Solches macht der Zeitinterpreter.
Der wer? Meinst du etwa das Teil, mit dem eine Zeitreisemaschine
gesteuert wird?

Wolfgang


--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.