不需要判断字符串,直接转就ok。
列:
var t='asdfdsfsdaf't=parseFloat(t)
if(isNaN(t) )
{
//不能转换
}
else
{
//转换成功
}
// isNaN() 函数可用于判断其参数是否是 NaN,该值表示一个非法的数字(比如被 0 除后得到的结果)
用parseFloat(str)函数。例如:
var f = parseFloat('23.4')
alert(f-13)
这样的话alert出来的结果就是10.4
类似的还有parseInt(str)函数
介绍一个不错的js学习网站给你,上面有DOM和js对象的详细说明及属性、方法
http://www.w3school.com.cn/js/index.asp
我现在从网上能查到的说法有两种:
第一种说是JS浮点数计算的bug
第二种说是和计算机最终转换成二进制计算有关系,
但是为什么不是所有小数都会有这种现象, 目前我也不清楚, 有机会再去深入研究一下。
解决办法,到是也有两种:
第一种就是利用JS .toFixed(n) 方法, 直接获取n位小数, 个人觉得这种方法在数据精度上会有一些问题. 如果数据精度要求不高的话 可以使用。
第二种方法就是自己写js 运算方法.
以下是自定义加法函数, 使用此方法进行相加会避免上面问题。
function addNum(num1,num2){var sq1,sq2,m
try{sq1=num1.toString().split(".")[1].length} catch(e){sq1=0}
try{sq2=num2.toString().split(".")[1].length} catch(e){sq2=0}
m=Math.pow(10,Math.max(sq1,sq2))
return ( num1 * m + num2 * m ) / m
}