static function Float2String($floatvalue, $bits)
 {
     // http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/ieee-expl.html
     switch ($bits) {
         case 32:
             $exponentbits = 8;
             $fractionbits = 23;
             break;
         case 64:
             $exponentbits = 11;
             $fractionbits = 52;
             break;
         default:
             return false;
             break;
     }
     if ($floatvalue >= 0) {
         $signbit = '0';
     } else {
         $signbit = '1';
     }
     $normalizedbinary = getid3_lib::NormalizeBinaryPoint(getid3_lib::Float2BinaryDecimal($floatvalue), $fractionbits);
     $biasedexponent = pow(2, $exponentbits - 1) - 1 + $normalizedbinary['exponent'];
     // (127 or 1023) +/- exponent
     $exponentbitstring = str_pad(decbin($biasedexponent), $exponentbits, '0', STR_PAD_LEFT);
     $fractionbitstring = str_pad(substr($normalizedbinary['normalized'], 2), $fractionbits, '0', STR_PAD_RIGHT);
     return getid3_lib::BigEndian2String(getid3_lib::Bin2Dec($signbit . $exponentbitstring . $fractionbitstring), $bits % 8, false);
 }