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.  

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


Arduino Forum > International > Deutsch (Moderator: uwefed) > begrenzte Fähigkeit des Atmel328p Kommazahlen mit ausreichend hoher Genauigkeit


arduino

Comments

Popular posts from this blog

DHT11 Time out error using v0.4.1library

Sketch upload fails with Java error (___REMOVE___/bin/avrdude)!

Arduino Uno + KTY81/210 temperature sensor