Как вывести большое число как строку в JavaScript?

322
04 декабря 2018, 03:10

Есть два больших числа:

var a = 63829983432984289347293874; 

и

var b = 90938498237058927340892374089; 

мне надо вывести их сумму как строку: "91002328220491911630239667963", но при суммировании у меня получается число с плавающей точкой 9.100232822049192e+28.
Как преобразовать это число с плавающей точкой к строке, которую надо вывести?

Answer 1

Как-то так:

var a = 63829983432984289347293874; 
var b = 90938498237058927340892374089; 
 
var stringSum = (a + b).toPrecision(40).split('.')[0] 
 
console.log('stringSum = ', stringSum);

Answer 2

Получилось точное значение только когда я использовал собственную функцию для сложения больших чисел:

var a = '63829983432984289347293874'; 
var b = '90938498237058927340892374089'; 
 
function res(a, b, result, carry, base) { 
  if (a.length == 0 && b.length == 0 && !carry) 
    return result; 
 
  var left = parseInt(a.pop() || '0', 10); 
  var right = parseInt(b.pop() || '0', 10); 
 
  var l = left + right + (carry || 0); 
 
  return res(a, b, l % base + (result || ""), Math.floor(l / base), base); 
} 
 
function add(a, b) { 
  return res(a.toString().split(""), b.toString().split(""), "", "", 10).toString(); 
} 
 
console.log(add(a, b));

READ ALSO
Остановка функции JavaSript

Остановка функции JavaSript

Нужно сделать Ajax запрос только один раз и если пользователь прокрутит документ на 100pxСейчас делается постоянно при прокрутке на 1px

120
Поместить текст в Ace редактор

Поместить текст в Ace редактор

Нашел markdown редактор на js, построенный на базе текстового редактора Ace[GitHub]Проблема в том, что у меня не получается поместить текст в редактор...

158
Google Maps Info Windows (попап текст)

Google Maps Info Windows (попап текст)

Нужно добавить текст по клику к каждому маркеру, но не пойму, как это сделатьПодскажите, пожалуйста, или покажите на примере

152
Изменение положения текста. css+html

Изменение положения текста. css+html

Как сделать так чтобы id="tunika" была с лева, а id"misha" с права, но в одном ряде

130