var time=2.4/0.8;
没处理的结果是:2.99999999995
一个double类型解决方案是:temp * 100 / (0.8 * 100)
temp为一只有两位小数的变量,
通过先将他们装换成整数在进行相除,就可以了,
两个小数之间取模也是这种解决办法:temp * 100 % (0.8 * 100);
parseFloat(temp.toFixed(2).toString()); //
取该变量小数点后两位小数,
并将其转换成Float类型
Math.floor(temp); //
仅仅取这个变量的整数部分
Math.floor(3.4444);=》3
Math.floor(3.9999);=》3
保留小数点后几位小数的方法:
1、temp.toFixed(2);//
取该变量小数点后两位小数
2、xx=0.02018
如果是保留3位小数
alert(Math.round(parseFloat(xx)*1000)/1000)
四位
alert(Math.round(parseFloat(xx)*10000)/10000)
(JavaScript中round函数方法是归回与给出的数值抒发式最接近的整数。使用方法: Math.round(number)
其中number是要舍入到最接近整数的值。number 的小数部分大于等于0.5,归回值是大于number 的最小整数。否则,round 归回小于等于number 的最大整数。
- 三、
注: 还有一些要说的是我们可以先将这些个数转换成字符串类型,在通过split(以什么字符支解字符串成数组)方法,将字符串支解成数组,取数组下标;两个小数相减: javascript:document.write(11.3-10.1)会显示1.200000000000001
解决方案:
javascript:document.write(paresFloat(11.3-10.1));
这个和数据结构有瓜葛整数型自己主动转换成正型计算小数型直接转成double型计算,这是在内存中运算的时候必须这样,你该知道计算机只认识0和1吧!具体的就是浮点精准度的不懂的题目
float 精确到小数点后7位double 精确到小数点后15位
在Javascript中,数学方法可以分成以下几类:
constans(常数)、power
functions(乘方函数)、
trigonometic
functions(三角函数)、
rounding
functions(舍入函数)、
random
numbers(随机数字)
常数和乘方函数
- Math.LN2 2的自然对数0.693
- Math.E 自然对数的底(为常数) 2.718
- Math.LN10 10的自然对数2.302
- Math.PI 圆周率3.1415
- Math.SQRT1_2 1/2的平方根0.707
- Math.SQRT2 2的平方根1.414
- Math.sqrt(x) X的平方根X的值有关
- Math.pow(x, n) 归回x的n次方的数值参数为x和n
- Math.log(n) 归回n的自然对数参数为n
- Math.exp(n) 归回e的n次方的数值参数为n
三角函数
- Math.cos(x) X的余弦函数
- Math.sin(x) X的正弦函数
- Math.tan(x) X的正切函数
- Math.acos(y) X的反余弦函数
- Math.asin(y) X的反正弦函数
- Math.atan(y) X的反正切函数
这里注意:
(参数x和以及反函数的归回数值的单位都为弧度比如PI弧度=180度)舍入函数和随机数字Math.random()孕育发生从0到1的随机数)
- Math.round(x) 取最接近整数x的数值
- Math.floor(x) 取最接近整数x并且比x小的数值
- Math.ceil(x) 取最接近整数x并且比x大的数值
- Math.min(a, b, c) 归回参数据排列表中最小的数值
- Math.max(a, b, c) 归回参数据排列表中最大的数值