Quiero convertir hexadecimal a Float 32. He usado el código de mención a continuación, pero no me ayudó correctamente cuando trato de convertir 0x4145851f este valor a float32 viene como 12.345000267028809 Pero en realidad el valor es 12.345 así que quiero ignorar extra dígitos sin redondear, necesita una salida adecuada.
const HexToFloat32 = (str) => { var int = parseInt(str, 16); if (int > 0 || int < 0) { var sign = int >>> 31 ? -1 : 1; var exp = ((int >>> 23) & 0xff) - 127; var mantissa = ((int & 0x7fffff) + 0x800000).toString(2); var float32 = 0; for (let i = 0; i < mantissa.length; i += 1) { float32 += parseInt(mantissa[i]) ? Math.pow(2, exp) : 0; exp--; } return float32 * sign; } else return 0; }; console.log(HexToFloat32("0x41200000"));Ya continué con la siguiente URL de la pila:
stackoverflow.com/questions/5055723/converting-hexadecimal-to-float-in-javascript