js乘法,138.33*100为啥出现这么多小数点?

同样的类型,都乘100为什么得到的结果不一样

8个回答

这个和数据结构有关系
整数型自动转换成正型计算
小数型直接转成double型计算
这是在内存中运算的时候必须这样
你该知道计算机只认识0和1吧
具体的就是浮点精准度的问题
float 精确到小数点后7位
double 精确到小数点后15位

这在往下说就多了 反正你知道知道这些就OK了 具体的你去学学数据结构和程序运行就知道了

浮点数运算都会有精度问题,toFixed舍入就行了

javascript浮点数运算精度问题

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));

您想要几位小数,还是您要想整数,如果要转整数,用它parseInt()

浮点数的精度问题,你了解下浮点数的原理就知道为什么了
所有的实数中只有少数可以被浮点数精确表示(比如离0比较近的整数,0.25,0.125什么的),其他的数只能近似表示,所以记住0.1+0.2!=0.3

这个说简单点就是,计算的时候小数类型跟小数类型计算就不会出现这种情况,小数跟整形成算,先把整形转成小数类型计算,会有精度丢失的情况,所以计算的时候最好是同类型进行计算。希望能够帮助到您

js的精确度的问题,在机器中他把138.33转化为0,1的二进制进行计算!可以向下取整或向上取整

js是二进制的,精度问题

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐