JS中 parseFloat() 函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中 parseFloat() 函数相关的知识,希望对你有一定的参考价值。

现在一个function下定义一个变量
var f = parseFloat(x);
if (isNaN(f))
return false;

我现在是要做个求和计算时要调用parseFloat(x),x为某个input输入框内的值,document.getElementById("name").value 当这个输入框为空时如何定义为当前值是0,请大家多多指教,谢谢

定义和用法
parseFloat() 函数可解析一个字符串,并返回一个浮点数。
该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。
语法
parseFloat(string)
参数描述
string    必需。要被解析的字符串。    
详细说明
parseFloat 是全局函数,不属于任何对象。
parseFloat 将它的字符串参数解析成为浮点数并返回。如果在解析过程中遇到了正负号(+ 或 -)、数字 (0-9)、小数点,或者科学记数法中的指数(e 或 E)以外的字符,则它会忽略该字符以及之后的所有字符,返回当前已经解析到的浮点数。同时参数字符串首位的空白符会被忽略。
如果参数字符串的第一个字符不能被解析成为数字,则 parseFloat 返回 NaN。<script type="text/javascript">

    document.write(parseFloat("10")) 
    document.write(parseFloat("10.00")) 
    document.write(parseFloat("10.33")) 
    document.write(parseFloat("34 45 66")) 
    document.write(parseFloat(" 60 ")) 
    document.write(parseFloat("40 years"))
    document.write(parseFloat("He was 40"))

</script>
输出:
10
10
10.33
34
60
40
NaN
参考技术A 在方法中判断就可以了
if(x==null || x== “”)
x=0;
追问

var f = parseFloat(x);

if(x==null || x== “”)
x=0;


if (isNaN(f))
return false;

你好,是这样加吗?这样加上后还是返回false值

追答

你用isNaN判断当然返回false,这是判断它是不是数字。转换之后是数字,可是你写的有问题,你这么写的意思是如果x是数字的话返回false,当然返回的是false了。

参考技术B x=document.getElementById("name").value;
x=x?x:0;追问

你好,现在有若干个input值相加,那怎么定义呢,请指教,谢谢

追答

function as()
var m=0;
var n=0;
var controls = document.getElementsByTagName('input');
for(var i=0; i<controls.length; i++)
if(controls[i].type=='text')
m=(parseInt(controls[i].value))?parseInt(controls[i].value):0;
n+=m;


alert(n);

随便写了一个 大概是遍历所有input 再把里面的值相加。

追问

function qiuhe() document.getElementById("name1").value=hs(parseFloat(document.getElementById("name2").value)+parseFloat(document.getElementById("name3").value)+……);
这个求和的函数里调用了另一个函数hs
function hs(x) var f = parseFloat(x); if (isNaN(f)) return false;
运行时如果input里都有值则没有问题,但有空时,那nanme1显示false,缺少一个对空返回为0的定义 这个怎么定义

在JS中如何把字符串转成数字

在js里面 用parseInt就行

var num1 = parseInt("1");var num2 = Number("2");//或者

也有
parseFloat()
parseDouble()
参考技术A num1 = parseFloat($("#id").val());
JS 中转换函数有两个 parseInt()和parseFloat() 前者将字符串转换为int类型 后者转换为float类型
追加一点小技巧
在js里 其实也可以这么做将字符串转为数字
num1 = $("#id").val() - 0;
取到的字符串减0也可以转为数字类型 加0是不行的 因为+操作符存在类似过载的情况,不知道js里是不是叫操作符过载

以上是关于JS中 parseFloat() 函数的主要内容,如果未能解决你的问题,请参考以下文章

获取浏览器版本信息

在JS中如何把字符串转成数字

js中进行金额计算parseFloat

JS 数据类型转换

JS数据类型转换

详解JS中Number()parseInt()和parseFloat()的区别