float T[] = {};
The compiler sizes the array, when you don't, based on the number of initializers you supply (0).
A zero element array is useless.
float j = float(i);
In the old days, single letter names in the range i to m were always integers. There is NO reason to create a float from an int to assign an int to a float.
Serial.println(T[44100]);
You don't, and can't possibly, have that many elements in the array.
So, What do I do to get the real value?
Provide adequate space in the array so you are storing data in the array, not sh*tting all over memory you don't own.