这个和数据结构有关系
整数型自动转换成正型计算
小数型直接转成double型计算
这是在内存中运算的时候必须这样
你该知道计算机只认识0和1吧
具体的就是浮点精准度的问题
float 精确到小数点后7位
double 精确到小数点后15位
这在往下说就多了 反正你知道知道这些就OK了 具体的你去学学数据结构和程序运行就知道了
您想要几位小数,还是您要想整数,如果要转整数,用它parseInt()
浮点数运算都会有精度问题,toFixed舍入就行了
js 四舍五入函数 toFixed(),里面的参数 就是保留小数的位数。
document.write("<h1>JS保留两位小数例子</h1><br>"); var a=2.1512131231231321; document.write("原来的值:"+a+"<br>"); document.write("两位小数点:"+a.toFixed(2)+"<br>四位小数点"+a.toFixed(4));浮点数的精度问题,你了解下浮点数的原理就知道为什么了
所有的实数中只有少数可以被浮点数精确表示(比如离0比较近的整数,0.25,0.125什么的),其他的数只能近似表示,所以记住0.1+0.2!=0.3
这个说简单点就是,计算的时候小数类型跟小数类型计算就不会出现这种情况,小数跟整形成算,先把整形转成小数类型计算,会有精度丢失的情况,所以计算的时候最好是同类型进行计算。希望能够帮助到您
js的精确度的问题,在机器中他把138.33转化为0,1的二进制进行计算!可以向下取整或向上取整
js是二进制的,精度问题