gpt4 book ai didi

javascript - 如何测试是否有多个小数点?

转载 作者:行者123 更新时间:2023-12-01 01:56:05 27 4
gpt4 key购买 nike

我正在为一个应该返回 float 的函数编写单元测试。我试图阻止某人向该函数发送一组字符(注意我没有说字符串),例如 3.2.1。如果我对这个“数字”使用正常测试,它们似乎都会失败:

未捕获的语法错误:参数列表后缺少 )

EG:

  • var result = isNaN(3.2.1);//同样的错误
  • var result = parseFloat(3.2.1);//期望为 NaN,但收到错误
  • var result = typeof 3.2.1 === 'number'//同样的错误

我想我可以将它用引号括起来并将其作为字符串进行测试(当谓词是字符串时,上面的所有测试都按预期工作)。

尚未回答此问题的各种问题:

那么,实际问题:如何测试具有多个小数点的“数字”并拒绝它?

这是我的实际代码,其中大多数测试都成功运行:

/**
*
* @param {*} value
* Converts a numeric string value to a float for use by a timeout interval
* datatype: ParseTimeoutInterval(string)
* example: ParseTimeoutInterval('2.5')
* return type: float
* return example: 2.5
*/
SerialWidget.prototype.ParseTimeoutInterval = function (value) {

try {
var self = this;

self.CallListeners('debug', 'ParseTimeoutInterval: value = ' + value);

if (value) {
var result = parseFloat(value);
if(result < 0 || isNaN(result)){
self.CallListeners('debug', 'ParseTimeoutInterval: value is negative or NaN');
return null;
}
return result.toPrecision(2);

} else {
return null;
}
self.CallListeners('debug', 'ParseTimeoutInterval: value is not a number');
return null;

} catch (ex) {
self.OnError('ParseTimeoutInterval', ex.message);
}
};

最佳答案

假设您擅长检查字符串,则可以将其拆分为数组并检查长度。

var badNumber = '3.2.1';
if (badNumber.split('.').length > 2) {
console.error('uh oh. THAT\'s not a number!');
} else {
// proceed
}

关于javascript - 如何测试是否有多个小数点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51029732/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com