Обратный номер в JavaScript - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь изменить случайный int в JavaScript. Я использую этот код:

'use strict';
function reverse_a_number(n)
{
    n = n + '';
    return n.split('').reverse().join('');
}
print(reverse_a_number(+gets())); //**+gets()** is like scanner.nextInt in Java and **print();** work's like console.log(); in JS.

Это хорошо работает, если число не является большим целым числом.

Для первого теста в моем судье, код работает правильно:

Input   Output
256     652
123.45  54.321

Но для BI я получаю неправильный ответ:

enter image description here

Может быть, лучший способ - преобразовать массив в строку ... Есть предложения?

1 Ответ

0 голосов
/ 06 ноября 2018

Причина заключается в том, что вы преобразуете свой get() вход в число. Не делайте этого, используйте строку, так как, я думаю, вы ее получите. Пример:

'use strict';

function gets() {
  return '52387456983765.98364593786'
}

function reverse_a_number(n)
{
    n = n + '';
    return n.split('').reverse().join('');
}


console.log(reverse_a_number(+gets())); // "489.56738965478325"


function reverse_a_number_new(n)
{
    return n.split('').reverse().join('');
}

console.log(reverse_a_number_new(gets()));  // "68739546389.56738965478325"

Чтобы узнать больше о поплавках в JS: https://javascript.info/number#imprecise-calculations

...