Avec ce type de code sur un arduino DUE il est possible d'avoir jusqu'à 15 décimales avec précision:
uint64_t bignum0 = 0xFFFFFFFFFFFFFFllu;
uint64_t bignum1 = (1llu<<64) - 1; //pow(2, 64) - 1;
int64_t bignum2 = -(1llu<<62); //- pow(2, 62);
double bignum3 = -1.12345678987654321;
double bignum4 = -166666666666666666666e-20;
void setup() {
Serial.begin(250000);
}
void loop() {
printf(" bignum0 = 0x%llx\n", bignum0);
printf(" bignum0 = 0x%llX\n", bignum0);
printf(" bignum1 = %llu\n", bignum1);
printf(" bignum2 = %lld\n", bignum2);
Serial.print(" bignum3 = ");
Serial.println(bignum3,15);
Serial.print(" bignum4 = ");
Serial.println(bignum4,16);
delay(3000);
}
/*************** OUTPUTS **************
bignum0 = 0xffffffffffffff
bignum0 = 0xFFFFFFFFFFFFFF
bignum1 = 18446744073709551615
bignum2 = -4611686018427387904
bignum3 = -1.123456789876543
bignum4 = -1.6666666666666667
********************************************/