Om jag t.ex. försöker göra beräkningen: Float = pow(4.1,4.2) så blir det allt annat än rätt.
Verkar som att "y" i "Float = pow(x,y)" måste vara ett heltal? för om x=4 och y=4 så blir det korrekt (256)
Detta är till PIC18F
Från Float rutinen/include:
Kod: Markera allt
float pow(float x, float y)
{
	float retval, real;
	int iterations;
	char neg = 0;
	if (flt_eq(x, 1.0))
		return(1.0);
	if (flt_eq(y, 0.0))
		return(1.0);
	if (flt_eq(x, 0.0))
		return(0.0);
	iterations = flt_toi(y);
	y = flt_sub(y, flt_fromi(iterations));
	if (iterations < 0)
	{
		iterations = 0 - iterations;
		neg = 1;
	}
	retval = x;
	if (iterations > 0)
		iterations--;
	while (iterations)
	{
		retval = flt_mul(retval, x);
		iterations--;
	}
	if (flt_ne(y, 0.0))
	{
		real = flt_mul(x, y);
		retval = flt_add(retval, real);
	}
	if (neg)
		retval = flt_sub(0, retval);
	return (retval);
} 
				



