Actually 273 is the difference between the C and K scales.
And you have multiple appearances of the constant 237 in your code. Is this a typing error ?
Your floating point calculations can be seriously optimised. You need to be careful if you rely on
the multiplications and divisions being done in the "correct" order. I'd be inclined to put a lot
more parentheses in those expressions.
float t = 20; // Temp in °C
float rF = 50; // Rel Feuchte
float tK = 293.15; //Temp in K
This coding is not a good idea. You have two places you need to change the code, for the actual temperature. If it becomes now 25 degrees, you have to change both t and also tK. If you change t to 25 and don't also change tK to 298.15, then your result will be rubbish.
This would be better.
float t = 20 ; // an input, change this
float rF = 50 ; // an input
const float KCconst = 273.15 ;
float tK = t+KCconst ; // depends on t, automatically, you don't need to manually change this
And then go and replace all the other occurences of 273 ( and 237 ) in your code, by KCconst.
I went and read that German website, you have about 4 mistakes in your implementation of the calculation of aF, so the title of this thread is misleading, to say the least.
Keep in mind that pow() expects floats and returns a float. pow(10, 5) will not return 1000000.000000.
Sure it will (assuming that your extra zero is a typo, and you meant 100000.0
There's a fine prototype for pow() telling the compiler that the function requires floating point arguments, and the compiler will automatically cast the arguments appropriately (or give you a warning for the cases where it can't.)