Вы можете использовать Number.parseFloat
и Number.parseInt
аналогично тому, как вы были.Вы неправильно использовали toFixed
.
Метод toFixed()
преобразует число в строку, сохраняя указанное количество десятичных знаков.Если желаемое количество десятичных дробей больше, чем фактическое число, добавляются нулевые значения для создания желаемой десятичной длины.
Пример:
let a = "30280.9529335";
console.log(parseFloat(a))
// 30280.9529335
let totalnumber = 0;
let str = "30280.9529335";
function convert(a, b) {
try {
return (Number.parseInt(a) + Number.parseFloat(b)).toFixed(16)
} catch(error) {
return error;
}
}
function convertb(a, b) {
try {
return Number.parseInt(a) + Number.parseFloat(b)
} catch(error) {
return error;
}
}
console.log(convert(totalnumber, str))
console.log(convertb(totalnumber, str))
Вы также можете использовать bigInts
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt
const theBiggestInt = 9007199254740991n;
const alsoHuge = BigInt(9007199254740991);
// ↪ 9007199254740991n
const hugeString = BigInt("9007199254740991");
// ↪ 9007199254740991n
const hugeHex = BigInt("0x1fffffffffffff");
// ↪ 9007199254740991n
const hugeBin = BigInt("0b11111111111111111111111111111111111111111111111111111");
// ↪ 9007199254740991n