NEWS
Ungewöhnliche Nachkommastellen in der History
- 
					
					
					
					
 Ich finde leider die Ursache meines Problems nicht. 
 Meine Rohdaten des Smartmeters sind alle auf 3 Nachkommastellen.
 Mit diesen rechne ich weiter und zwar nur plus und minus.
 Wieso hat dann plötzlich mein Tagesverbrauch so viele Nachkommastellen in der History?
 Diese sind auch sehr ungewöhnlich. Die 3 Nachkommastellen sind korrekt. Dann folgen entweder haufenweise 9 oder 0. Kann absolut kein Rechnungsfehler sein. Woher kommen diese Werte?
 Kann mir da jemand weiterhelfen? Oder handelt es sich um ein Bug?Vielen Dank für Eure Hilfe  
- 
					
					
					
					
 @shark01 sagte in Ungewöhnliche Nachkommastellen in der History: Mit diesen rechne ich weiter dann lass dir die Zwischenergebnisse doch mal anzeigen. 
 und runde ggf.
- 
					
					
					
					
 @shark01 sagte: Mit diesen rechne ich weiter Bei Rechnen mit Gleitkommawerten entstehen irgendwann diese Nachkommastellen. 
- 
					
					
					
					
 @paul53 Vielen Dank für die Antwort. Verstehe zwar nicht wie diese entstehen. Werde meine Resultate also runden müssen. 
- 
					
					
					
					
 @shark01 
 Bin gerade auch auf das Phänomen gestoßen. Ist doch kaputt, wenn in Blockly aus 0,002-0,001 der Wert 0,0009999999999763531 entsteht.
- 
					
					
					
					
 @warp-it sagte in Ungewöhnliche Nachkommastellen in der History: Ist doch kaputt, wenn in Blockly aus 0,002-0,001 der Wert 0,0009999999999763531 entsteht Nein, ist es nicht. Das Rechnen mit Gleitkommazahlen produziert diese Rundungsfehler. 
 Das liegt in der Natur der Sache.https://www.vectorsoft.de/blog/2012/12/rundungsfehler-bei-float-werten 
- 
					
					
					
					
 @codierknecht 
 Computer sind sooooo doof...
- 
					
					
					
					
 @warp-it Aber dafür schnell! 
- 
					
					
					
					
 @thomas-braun 
 Irgendjemand hat mir zumindest für Menschen erklärt, man könnte sie in eine 2 x 2 Tabelle einsortieren ...{ dumm, klug } x { faul, fleißig } Dumm und Fleißig - das sind die Schlimmsten.... richten deutlich mehr Schaden pro Zeiteinheit an, als Dumm und Faul ... Deshalb habe ich nur so einen langsamen Prozessor für ioBroker in Einsatz  
- 
					
					
					
					
 @warp-it sagte in Ungewöhnliche Nachkommastellen in der History: @codierknecht 
 Computer sind sooooo doof...viel schlimmer. Computer machen genau das was du ihnen sagst - nicht was du von ihnen willst. Und die wenigsten können ihre Aufgabe hinreichend genau spezifizieren dass sie immer gleich und korrekt abgearbeitet wird. A. 
- 
					
					
					
					
 @codierknecht 
 Hmmm, der Windows Taschenrechner kann das:
  
 Sogar ich kann das:
  
- 
					
					
					
					
 @warp-it Gleitkommazahl, das wurde ja beschrieben. Ro75. 
- 
					
					
					
					
 @shark01 Das hat etwas mit der internen Darstellung der Gleitkommanzahlen zu tun - ist etwas Hardcore ... Das Gleitkommaformat ist ein kein platzraubendes Dezimalformat, sondern eine gepackte Binärdarstellungen ... Die Darstellungs/Rundungsfehler entstehen bei den Umwandlungen aus/zur Dezimaldarstellung .. https://en.wikipedia.org/wiki/Floating-point_error_mitigation 
- 
					
					
					
					
 @warp-it sagte in Ungewöhnliche Nachkommastellen in der History: 0,002-0,001 der Wert 0,0009999999999763531 aber an javascript selbst liegt das nicht  auch im iobroker als script console.log(0.002-0.001)javascript.0 15:13:32.654 info Start JavaScript script.js.test1 (Javascript/js) javascript.0 15:13:32.662 info script.js.test1: 0.001 javascript.0 15:13:32.662 info script.js.test1: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
- 
					
					
					
					
 @oliverio said in Ungewöhnliche Nachkommastellen in der History: @warp-it sagte in Ungewöhnliche Nachkommastellen in der History: 0,002-0,001 der Wert 0,0009999999999763531 aber an javascript selbst liegt das nicht  auch im iobroker als script console.log(0.002-0.001)javascript.0 15:13:32.654 info Start JavaScript script.js.test1 (Javascript/js) javascript.0 15:13:32.662 info script.js.test1: 0.001 javascript.0 15:13:32.662 info script.js.test1: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptionsSchlecht gewähltes Beispiel Lasse Javascript mal das hier rechnen - genaues Ergebnis wäre 1234567890.0: log (1234567890.001 + 0.349 - 0.002 - 0.348 + 0.003 + 0.347 - 0.004 - 0.346 + 0.005 + 0.345 - 0.006 - 0.344 + 0.007 + 0.343 - 0.008 - 0.342);
- 
					
					
					
					
 @martinp sagte in Ungewöhnliche Nachkommastellen in der History: Schlecht gewähltes Beispiel das war das was der TE moniert hatte. Ansonsten muss es nicht sooo kompliziert sein: 
 log(0.1 + 0.2)
 script.js.floats: 0.30000000000000004
- 
					
					
					
					
 @fastfoot sagte in Ungewöhnliche Nachkommastellen in der History: log(0.1 + 0.2) 
 script.js.floats: 0.30000000000000004hier ist es tatsächlich so, aber bei dem TE Beispiel ist es nicht so. 
 Nachtrag:
 ich habe mich mal überwunden das Blockly nachzustellen
 und kann das Ergebnis dort nicht nachvollziehen javascript.0 18:19:06.351 info Start JavaScript script.js.test2 (Blockly) javascript.0 18:19:06.378 info script.js.test2: 0.001 javascript.0 18:19:06.378 info script.js.test2: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptionsvon daher alles ok die Eingangs im log gezeigten Daten können schon sein, aufgrund den zusätzlichen Rechenoperationen. 
 Wobei ich selbst bei +- Operationen damit nicht gerechnet hätte, sondern eher bei */sqrt. wobei bei Math.sqrt(7)*Math.sqrt(7) = 7.000000000000001 js erstaunlich gut abschneidet
 
		
	 
		
	 
			
			 
			
			 
			
		 
			
			 
			
		 
			
		