Try (работает на Chrome, где поддерживается BigInt)
BigInt(Number(value)).toString(16);
однако, используя этот подход, мы теряем точность, но мы можем использовать альтернативный подход путем преобразования числа в экспоненциальной форме в целочисленную форму
let value= "1.7956279830335669e+47";
let sim = BigInt(Number(value)).toString(16);
let prec = BigInt(fix2IntStr(value)).toString(16);
let direct = 179562798303356690000000000000000000000000000000n.toString(16);
// convert "exponential" form to integer string
function fix2IntStr(str) {
let [m,e] = value.split('e');
e = e - (m.length - m.indexOf('.')-1);
m = m.replace('.','');
return m+"0".repeat(e);
}
console.log('simple :', sim);
console.log('precise:',prec);
console.log('direct :',direct);