function validateResponse(number) {
console.info(typeof(Math.round(number)))
console.info(typeof(number))
if ((isNaN(number)) || (Math.round(number) !== parseFloat(number)))
return true;
else
return false
//checks if number is integer and checks for decimal places
}
let input = require("readline-sync");
console.info(validateResponse("10"));
console.info(validateResponse("10.0"));
Я новичок в Javascript, поэтому мои знания о нем ограничены. Поправьте меня, если я ошибаюсь, но Javascript автоматически преобразует «10.0» в 10, если я не использовал parseFloat?
🤔 А знаете ли вы, что...
Синтаксис JavaScript схож с синтаксисом языка программирования Java, но они не связаны.
Вы можете использовать метод includes(".")
, чтобы проверить, содержит ли ввод десятичную точку.
Полный код будет выглядеть так:
function validateResponse(number) {
const numberValue = parseFloat(number);
return !isNaN(numberValue) && number.includes(".");
}
Зависит от ваших реальных требований, но это выполнит то, о чем вы просили. Он проверяет, равна ли строка числа строке округленного числа, и, поскольку 10,0 округляется до 10, они не равны, поэтому возвращает true, а 10 возвращает false.
function validateResponse(number) {
return number.toString() !== parseInt(number).toString();
}