用javascript将字符串转换为数字
convert string to a number in javascript
我想解析一个包含经度和纬度的用户输入。我想做的是将字符串强制为数字,保留其符号和小数位数。但我想做的是当用户的输入无效时显示一条消息。我应该遵循中的哪一个
parseFloat(x)
第二
new Number(x)
第三
~~x
第四
+x
如果必须在两者之间进行选择,我会使用Number(x)
,因为它不允许尾随垃圾。(好吧,它"允许"它,但结果是NaN
。)
也就是说,Number("123.45balloon")
是NaN
,但parseFloat("123.45balloon")
是123.45
(作为数字)。
正如Kling先生所指出的,哪一个"更好"取决于你。
编辑—啊,你又加了+x
和~~x
。正如我在评论中所写的,+x
相当于使用Number()
构造函数,但由于+
运算符的语法灵活性,我认为这有点风险。也就是说,剪切粘贴很容易引入错误。如果您知道无论如何都需要一个整数(32位整数),那么~~x
形式是很好的。然而,对于lat/long来说,这可能不是你想要的。
第一个更好。这是明确的,也是正确的。你说你想解析浮点数。~~x
会给你一个整数。
要测试input
是否为数字,请使用以下命令:
function isNumeric(obj){
return !isNaN( parseFloat(obj) ) && isFinite( obj );
}
要将String
转换为Number
,请使用+
,这是最快的方法:
一元+运算符还可以将其操作数类型转换为数字,因为它不进行任何额外的数学运算,所以它是将字符串类型转换为数值的最快方法
所以总的来说,你可能需要这个:
if(!isNumeric(inputValue)){
alert('invalid number');
}else{
var num = +inputValue;
}
isNumeric
借用自jQuery
这是我要编写的代码,用于重复输入,直到获得正确的输入。
var d;
do {
d = prompt("Enter a number");
d = new Number(d);
} while( isNaN(d) );
document.write( d );
注意:如果任何字符是非数字字符,则new Number(d)
将始终给出NaN
,而parseFloat(d)
将忽略后面的无效字符。
相关文章:
- 将数字转换为一定数量的硬币
- 将数字转换为字符串数字
- $.get将数字转换为字符串
- 这个javascript代码有什么错误,它有将数字转换为单词的功能
- Java脚本插件,用于将数字转换为特定于区域性的货币格式,并将具有特定货币格式的非格式化数字转换为普通数字
- 在JavaScript中,有没有一种方法可以解析JSON,将数字转换为字符串
- 可以避免在JavaScript中对isNaN()函数进行内部数字转换
- 阻止jQuery Flot将数字转换为十进制
- 将数字转换为16位浮点(存储为字节)并返回
- 如何将一串数字转换为数组
- 将数字转换为名称
- 将数字转换为印度本地语言格式
- 将数字转换为字符串(提供字符集)JavaScript
- 将浮点数字转换为RGBA CSS颜色的有效Alpha值
- 将数字转换为反转的数字数组
- 数字转换器JQuery
- 将数字转换为十进制
- 如何在excel中将数字转换为文本;datatables.js”;下载
- 在没有科学记数法的情况下将大数字转换为字符串
- 将数字转换为字母