Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Вывести на дисплей 20 значное число в нормально виде (https://javascript.ru/forum/css-html/69346-vyvesti-na-displejj-20-znachnoe-chislo-v-normalno-vide.html)

Mac2017 16.06.2017 11:46

Вывести на дисплей 20 значное число в нормально виде
 
Проблема следующая : при работе функции на дисплей выходит результат с плавающей запятой. Пробовал просто выводить число частями.. но увы вы водит не понятный результат.. зачем то округляет самостоятельно.
:help: :help: :help: :help:
var therdEx = solution("712569312664357328695151392" , "8100824045303269669937");
function solution(firstarg, secondarg){
        res = Number(firstarg)+Number(secondarg);
       r= res.toString();
        return   r
    }
console.log(therdEx);

рони 16.06.2017 11:56

Mac2017,
искать плагин BigNumber http://javascript.ru/forum/misc/6401...rifmetika.html

Mac2017 16.06.2017 12:04

Надо решить на native JS - плагин слишком просто.

рони 16.06.2017 12:07

Цитата:

Сообщение от Mac2017
Надо решить на native JS - плагин слишком просто.

не понимаю, но смотрите ссылку выше -- полностью всю тему

Mac2017 16.06.2017 12:16

Чот там к тому же выводу пришли. Или намекаешь на что лучше преобразовать массив, а потом вывести на дисплей.

рони 16.06.2017 12:19

Mac2017,
не понимаю ваших сообщений, всё чем мог помочь смотрите по ссылке.

j0hnik 16.06.2017 14:34

<head>
	<meta charset="utf-8">
</head>
<body>
left:<input type="text" id="left" />
<br/>right:
<input type="text" id="right" />
<button id="summ">Сложить</button>
<br/>sum: <span id="sum"></span>
	<script>  
  document.getElementById("summ").addEventListener("click", function(e) {
    var left = document.getElementById('left').value;
    var right = document.getElementById('right').value;
    if(isNaN(left) || isNaN(right)) return;
    document.getElementById('sum').innerHTML = (add(left,right)); 
  });  
  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();
  }
	</script>
</body>


если вам только для сложения


Часовой пояс GMT +3, время: 13:14.