problema con raiz enesima (Solucionado)

Quiero resolver esta raiz en arduino pero me recorta los decimales, en este ejemplo el resultado es 0,959 y este me redondea en 1

int raiz;
void setup()
{
	Serial.begin(9600);
}
void loop()
{
raiz= pow((72/100), (8)^-1);
Serial.println(raiz);
delay(1000);
}

Pero @Adrian_E en que piensas?

int raiz en lugar de double raiz?

Bueno aún asi no da el valor esperable.

Mi calculadora científica de la PC da 0,9597686545
En que estaba pensando yo.

Buen pow da unresultado en double y deben pasarse parámetros en float.
Asi funciona correctamente.

Esto ahora funciona

double raiz;

void setup()
{
	Serial.begin(9600);

	float numero = 72.0/100.0;
	float exponente = 0.125;
	raiz = pow(numero, exponente);
	Serial.println(raiz, 5);
}

void loop() {
	
}

yo no comprender :slight_smile: lo de double, a mi en la calculadora poniendo 8 raiz (72/100) me da 0959 y en el mathematica igual

Pero no estas en la calculadora ni en Mathematica. Estas en Arduino con las reglas de arduino.

Esto tampoco funciona.

raiz = pow(72.0/100.0, 1/8);

Me da 1.0000

Estoy comientiendo barbaridades pero solo para aclarar cosas y luego veremos los errores

Esto tampoco funciona

raiz = pow(72.0/100.0, 8^(-1));

Da 19.23124

Bueno respecto de 8^(-1) el resultado es -9 de modo que no toma el operador ^
Tendrias que hacer un pow(8,-1)

Asi que esto si funciona como tu esperas

double raiz;

void setup()
{
	Serial.begin(9600);

	raiz = pow(72.0/100.0, pow(8.0,-1.0));
	Serial.println(raiz, 5);
}

void loop() {
	
}

Gracias surbyte, me quede sin internet y no pude porner que lo habia solucionaso, estoy programando un sensor de temperatura el bme 280, y estaba calculando el punto de rocio,
todavia falta, pero subo lo que tengo hecho. cuando tenga tiempo, ya lo subo completo y la parte de la pantalla nextion.

#include <Adafruit_BME280.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>;
#include<SPI.h>;

#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme;

double T=13;
double H=72;
double raiz1;
double raiz2;
void setup()
{
  Serial.begin(9600);
  Serial.println(F("BME280 test"));
  bool status;
  status = bme.begin(); 
  if(!status){
    Serial.println("No se pudo detectar Modulo BME 280");
    while(1);
  }
}
void loop()
{
puntorocio();

}

void puntorocio(){
  raiz1= pow(H,1.0/8);
  raiz2= pow(100,1.0/8);
double div_raiz= raiz1/raiz2;
double Pun_rocio= div_raiz*(110+T)-110;

//Serial.println(raiz1);
//Serial.println(raiz2);
//Serial.println(div_raiz);
Serial.print("Punto de Rocio  :");
Serial.print(Pun_rocio);
Serial.println(" %");
delay(1000);
}