begrenzte Fähigkeit des Atmel328p Kommazahlen mit ausreichend hoher Genauigkeit
also ich spiele mit arduino und weiße nicht , warum mein code nicht funktionniert.
ich möchte eine additon mit großer zahlen führen. die zahlen haben festkommazahlen.
bsp a =150000000.5 und b= 0.5;
ich führe c= a+b durch ;
oder die multiplikation von mal b geht auch.(c=a*b)
leider der kompiler vernachlässigt immer meine kommastelle. bezugsweise meine (0.5) hintere stelle.
ich weiße es nicht, wie ich das problem lösen kann.
gibt es eine bibliothek, die die floating-point oder double -werte berechnungen emuliert kann.
ich möchte eine additon mit großer zahlen führen. die zahlen haben festkommazahlen.
bsp a =150000000.5 und b= 0.5;
ich führe c= a+b durch ;
oder die multiplikation von mal b geht auch.(c=a*b)
leider der kompiler vernachlässigt immer meine kommastelle. bezugsweise meine (0.5) hintere stelle.
ich weiße es nicht, wie ich das problem lösen kann.
gibt es eine bibliothek, die die floating-point oder double -werte berechnungen emuliert kann.
code: [select]
#include <spi.h>
#include<math.h>
void setup() {
serial.begin (9600);
uint32_t rf= 150000003.5;
double b= 3.5;
double k= rf+b;
serial.println(rf);
serial.println(k);
}
völlig normal. das ist auch auf dem pc nicht anders. auf 8-bit arduinos ist float das gleiche wie double. 6-7 signifikante stellen (d.h. alle ziffern!) bedeutet.
nimm einen 32-bit arduino. dann hat double 64 bit
nimm einen 32-bit arduino. dann hat double 64 bit
Arduino Forum > International > Deutsch (Moderator: uwefed) > begrenzte Fähigkeit des Atmel328p Kommazahlen mit ausreichend hoher Genauigkeit
arduino
Comments
Post a Comment