FHEM Forum

FHEM => Frontends => Thema gestartet von: hermannk am 13 Februar 2015, 21:28:29

Titel: Rundungsproblem
Beitrag von: hermannk am 13 Februar 2015, 21:28:29
To whom it may concern,

nachdem ich einige Gnuplots erstellt habe (außerhalb von FHEM) bin ich auf Folgendes gestoßen (siehe Anhang).

Ich war kurz davor, bei Gnuplot einen Fehlerreport zu schreiben, konnte die Unschönheit (Fehler?) aber in der Gnuplot-Version nicht nachvollziehen. Inzwischen ist's mir klar, warum.

Fall jemand den Code anpackt....

Gruß

Hermann
Titel: Antw:Rundungsproblem
Beitrag von: tonyf am 14 Februar 2015, 00:27:18
hallo Hermann,

ich weiss nicht, wie es den andern hier geht,
ich verstehe abe nur (haupt)bahnhof.

was soll da an den plots falsch sein ?!

gruss
tony
Titel: Antw:Rundungsproblem
Beitrag von: Icinger am 14 Februar 2015, 06:01:44
Ich vermute, er meint das "112e-17" in seiner Temperatur-Skala :)

lg, Ici
Titel: Antw:Rundungsproblem
Beitrag von: rudolfkoenig am 14 Februar 2015, 08:28:06
Ohne einen nachstellbaren Beispiel (.gpot Datei + Logdaten) wird es keinen Fix geben.
Ich heabe keine Zeit/Energie Stundenlang nach einem Beispiel zu suchen, wo 0 nicht korrekt gerundet wird.
Titel: Antw:Rundungsproblem
Beitrag von: hermannk am 16 Februar 2015, 20:35:52
Hallo Rudolf,

Zitat von: rudolfkoenig am 14 Februar 2015, 08:28:06
Ohne einen nachstellbaren Beispiel (.gpot Datei + Logdaten) wird es keinen Fix geben.
Ich heabe keine Zeit/Energie Stundenlang nach einem Beispiel zu suchen, wo 0 nicht korrekt gerundet wird.

Hier sind die Dateien zum ersten Beispiel (da wo die 0 zu 112e-17 nicht-gerundet wird).

Beste Grüße

Hermann
Titel: Antw:Rundungsproblem
Beitrag von: hermannk am 16 Februar 2015, 20:48:25
Zitat von: rudolfkoenig am 14 Februar 2015, 08:28:06
Ohne einen nachstellbaren Beispiel (.gpot Datei + Logdaten) wird es keinen Fix geben.
Ich heabe keine Zeit/Energie Stundenlang nach einem Beispiel zu suchen, wo 0 nicht korrekt gerundet wird.

Dies sind die Daten zum zweiten Beispiel. Hier wird 7.6 zu 7.599 verziert. Die Plotfunktion kommt wohl nicht mit den konstanten Werten zurecht.


2015-02-13_14:53:59 CUL_WS_6 T: 7.5  H: 79.4
2015-02-13_14:56:53 CUL_WS_6 T: 7.5  H: 79.4
2015-02-13_15:28:53 CUL_WS_6 T: 7.6  H: 79.4
2015-02-13_15:43:25 CUL_WS_6 T: 7.6  H: 79.7
2015-02-13_15:46:20 CUL_WS_6 T: 7.6  H: 79.7
2015-02-13_15:49:14 CUL_WS_6 T: 7.6  H: 79.7
2015-02-13_15:55:03 CUL_WS_6 T: 7.6  H: 79.5
2015-02-13_15:57:58 CUL_WS_6 T: 7.6  H: 79.5
2015-02-13_16:00:52 CUL_WS_6 T: 7.6  H: 79.4
2015-02-13_16:03:47 CUL_WS_6 T: 7.6  H: 79.5

Titel: Antw:Rundungsproblem
Beitrag von: rudolfkoenig am 17 Februar 2015, 15:13:30
Ich konnte das Problem nachstellen, habe aber erstmal nichts unternommen.

Die Texte sind das Ergebnis von sprintf("%g"), nach kurzem Herumspielen ist mir keine nebeneffektfreie Loesung eingefallen.
Wenn jemand eine solche praesentieren kann, dann her damit. Kurze Einzeiler wuerde ich einbauen, eine seitenlange Formatierfunktion ist mir nicht Wert, diese seltenen Faelle zu fixen.

Um die Aufgabe einfacher zu machen, hier sind die zu rundende Zahlen aus den Beispielen mit %.30f ausgegeben:
-0.800000000000000044408920985006
-0.600000000000000088817841970013
-0.400000000000000077715611723761
-0.200000000000000066613381477509
-0.000000000000000055511151231258
0.199999999999999955591079014994

7.599000000000000198951966012828
8.599000000000000198951966012828


Bitte daran denken, dass die Loesung auch das Problem aus dem letzten Bild (7.599/8.599) loesen sollte.