Je constate un pb d’arrondi dans l’archivage des données historisées.
J’ai une commande avec une precision de 1 digit … OK, les valeurs sont bien arrondies (à l’affichage et dans la table history)
Par contre, si je remonte plus loin dans l’historique, je constate des valeurs avec + d’1 digit voir des valeurs de nombres rationnels (1,333333333333). et donc je constate bien ces valeurs dans la table history_arch.
Je comprends que ces valeurs sont issues d’une moyenne de valeurs lors de la bascule des données de history vers history_arch la nuit (afin de limiter le volume de données)
Par contre, le non-arrondi à 1 digit lors de cette moyenne comme paramétré dans la commande ne me semble pas normal.
C’est un détecteur de hauteur d’eau de piscine dont la précision envoyée à JC est au centième de millimètres
Aucun intérêt, donc j’arrondis au millimètre (c’est déjà beaucoup comme précision pour une hauteur d’eau de piscine.
Non répétition des valeurs activée
Donc je ne stocke QUE les chgts d’état
On est d’accord, mais en l’occurrence, il me fait le contraire, je pars de 1 digit non compressé pour arriver à 2,3, voir x digits compressés
Ex, sur une heure, hier
3 valeurs sauvegardees, 0.1, 0.2 et 0.1
→ valeur archivée 0.133333333 au lieu de 0.1 (0.4/3)
la moyenne est bien de 0.13333 qui tient sur une seule valeur au lieu de 3, je pense que ca gagne de la place dans la base. je ne pense pas que la base stocke sous forme de digits…
la hauteur d’eau dans une piscine peut avoir 3 valeurs différentes dans une heure ?? ne vaudrait il pas mieux relever cette hauteur que toutes les heures, voir plus ?
C’est un exemple !
Le pb n’est pas la mesure du niveau de l’eau de ma piscine (qui peut bien en l’occurrence évoluer dans la même heure en cas de pluie, cf une des dernières pluies, 15mm en une heure, ou bien lorsque je la reremplis, ou je serai bien content que la vanne s’arrête lorsqu’elle est pleine et pas 1h après dans le pire des cas), mais la gestion de l’archivage des données.
La précision d’une moyenne ne peut pas être supérieure à la précision des données unitaires, c’est physique ( au sens des cours de physique du collège). Le contraire n’a pas de sens.
Les données archivées devraient l’être sur la base du même arrondi que la valeur elle même
la précision de la moyenne n’est pas supérieure mais seulement une moyenne, donc elle peut avoir des virgules contrairement aux chiffres moyennés (au sens mathématique du primaire ou collège). On n’y peut rien.
Pas du tout, ton 17 et ton 18/20 ne sont pas des arrondis, mais des valeurs exactes donc avoir plus de décimales pour la moyenne à un sens.
Règle
Lorsque l’on additionne ou soustrait des données, le résultat doit toujours être exprimé avec la même précision que la valeur la moins précise, soit celle ayant le moins de chiffres après la virgule.
dans ton exemple, le nombre de chiffres significatifs après la virgule est 1 (Tu peux avoir 18,0 ou 18,5), donc avec une moyenne avec un chiffre après la virgule est totalement juste