Как мне проверить, соответствует ли число бесконечности?

Один проект, о котором я знаю, который обеспечивает подобные функции (встроенное графическое изображение, настраиваемый рендеринг) , Повторно взаимодействуют . Другой (хотя возможно немного тяжеловес для общего использования) SAGE, который обеспечивает функциональность для веб- ноутбуки .

Это не вполне оболочки - они разработаны больше как математический ноутбук (так, например, можно изменить более ранний результат и иметь изменение propogate к более поздним вычислениям), но они близко к тому, что Вы ищете и могли, вероятно, быть изменены, чтобы использоваться как таковые.

86
задан Mosh Feu 4 August 2016 в 09:36
поделиться

2 ответа

Мне нравится использовать Lodash для разнообразия оборона, кодирующая причины, а также удобочитаемость. ES6 Number.isFinite является большим и не имеет проблем с нечисловыми значениями, но если ES6 не возможен, Вы уже имеете lodash или хотите более краткий код: _ .isFinite

_.isFinite(Infinity); // false
_.isFinite(NaN); // false
_.isFinite(-Infinity); // false

_.isFinite(null); // false
_.isFinite(3); // true
_.isFinite('3'); // true
0
ответ дан 24 November 2019 в 08:00
поделиться

Я имею, столкнулся со сценарием, который потребовал, чтобы я проверил, имеет ли значение NaN или Infinity тип, но строки передачи как допустимые результаты. Поскольку много текстовых строк произведут ложно-положительный NaN, я сделал простое решение для хитрости этого:

  const testInput = input => input + "" === "NaN" || input + "" === "Infinity";

вышеупомянутый код преобразовывает значения в строки и проверки, строго ли они равны NaN или Бесконечности (необходимо будет добавить другой случай для отрицательной бесконечности).

Так:

testInput(1/0); // true
testInput(parseInt("String")); // true
testInput("String"); // false
0
ответ дан 24 November 2019 в 08:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: