Ответ GMB обычно является лучшим выбором, но если вам действительно нужно вывести (a_really_precise_number) * 100, вы можете сделать это на стороне приложения, фактически передав его в виде строки в язык, который поддерживает произвольно большие числа, а затем приведите егосторона приложения.Если в вашей базе данных есть числа более точные, чем 16 цифр, вы, вероятно, уже используете номер, который поддерживает это в вашем приложении.
В некоторых случаях вы просматриваете данные из другого источника, и у вас есть более точные цифры, для которых предназначен ваш язык.Во многих языках, которые изначально не поддерживают эти большие числа, могут быть доступны библиотеки, которые делают причудливый анализ для выполнения математических операций над строками в виде строк, но они, как правило, работают довольно медленно, если вам нужно работать с действительно большими числами или наборами данных.
Третий вариант, если вы просто умножаете его на степень 10, например, N * 100, и выводите результат, передаете его в приложение в виде строки, а затем просто анализируете его, чтобы переместить десятичное число в 2 места, например, так:
function shiftDec(str, shift){
// split on decimal point
var decPoint = str.indexOf(".");
var decInt = str.substr(0, decPoint);
var decMod = str.substr((decPoint+1));
// move decimal 'shift' places to simulate N*100.
if(shift > 0){
var shiftCopy = decInt .substr(0,shift);
decInt = decInt + shiftCopy;
decMod = decMod .substr(shift);
} else {
var shiftCopy = decInt .substr((decInt.length + shift));
decInt = decInt .substr(0,(decInt.length + shift));
decMod = shiftCopy + decMod;
}
return decInt + '.' + decMod;
}
var result = shiftDec("1234567891234567.8912345678912345", 2);
document.write(result);