Processing is open-source, so you can view its source here. The pow() function is defined on line 4469.

static public final float pow(float n, float e) {
return (float)Math.pow(n, e);
}

This defers to the Math.pow() function in Java, which you can read about here. The Math.pow() function takes double values as parameters, so no, pow() does not require integers.

This also works okay for me:

float x = 2;
float y = pow(x, 0.026);
println(y);

My best guess is you maybe had something like this:

float x = 1/2;
float y = pow(x, 0.026);
println(y);

With this code, the 1/2 calculation is done first, and since they’re both int primitives, the result is 0.

Or maybe something like this:

float x = 2;
float y = pow(X, 0.026);
println(y);

Note the upper-case X in the second line of code. This X is a predefined value used internally by Processing, and its value is 0.