Я написал функцию, которая ведет себя по-разному в зависимости от числового типа ее параметров. Целое или плавающее.Javascript бросает числа с плавающей точкой в целые числа без причины
Используя код от этого вопроса How do I check that a number is float or integer? это было легко обнаружить, если поплавок или нет, но потом я наткнулся на случай, что Javascript слепки 1.0
в 1
без причины, если вы вызываете функцию, используя этот номер.
Пример:
function dump(a, b) {
console.log(a, typeof b, b);
}
dump('1', 1);
dump('1.0', 1.0);
dump('1.1', 1.1);
выход хром, светлячок, то есть, опера и сафари все дали тот же результат:
1 number 1
1.0 number 1 "wrong"
1.1 number 1.1
Я знаю, что Javascript знает только тип number
но вынужден литая кажется идти за борт. Единственное решение, с которым я столкнулся, состояло в том, чтобы вызвать функцию, используя строковые значения, такие как '1.0'
, определить точку и использовать parseFloat
или parseInt
.
Любое предложение об этом?
Зачем вам нужен '1.0' по сравнению с' 1'? Они одинаковы. JavaScript не имеет понятия 'int' или' float', просто 'number'. –
Что такое функция, которую вы написали? Почему это имеет значение, если это 'int' или' float'? –
Функция возвращает случайное число, например. между А и В. В зависимости от начального значения он может быть истребителем 4,10 => 7 (int) или 1,5, 12 => 4,25 - вы получаете точку. – naden