javascript中的float运算精度的一些问题,下面是具体的说明。
创新互联公司长期为超过千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为涵江企业提供专业的网站设计制作、成都网站制作,涵江网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
有人问到一个js问题:
var i = 0.07;
var r = i*100;
alert(r);
结果为什么是7.0000000000000001?
查了下资料,其实JavsScript中,变量在存储时并不区分number和float类型,而是统一按float存储。而javascript使用IEEE 754-2008 标准定义的64bit浮点格式存储number,按照IEEE 754的定义:
decimal64对应的整形部分长度为10,小数部分长度为16,所以默认的计算结果为“7.0000000000000001”,如最后一个小数为0,则取1作为有效数字标志。
类似地,可以想像,1/3的结果应该是0.3333333333333333。
那么如何校正这个值呢?
可以用以下方法:
一、parseInt
var r4=parseInt(i*100);
二、Math.round
var r2=Math.round((i*100)*1000)/1000;
以上两种方法都可以得到7
附全部测试代码:
html
head
title测试脚本/title
script language="JAVASCRIPT"
function init()
{
var i = 0.07;
var r = i*100;
var r2=Math.round((i*100)*1000)/1000;
var r3 = eval(i*100);
var r4=parseInt(i*100);
var r5=parseFloat(i*100*1.0000);
var r6=(1/3);
alert(r);
alert("Math.round="+r2);
alert("eval="+r3);
alert("parseInt="+r4);
alert("parseFloat="+r5);
alert(""+r6);
}
/script
/head
body onload="init();"
/body
/html
1、在电子秤的右边数字设置区域,按住小数点键不放几秒钟,出现“CEntr”后松开。
电子秤校正指导书 1.目的:用公司标准砝码校正公司内电子秤,保证称重的准确/有效。 2.适用范围:公司内量程小于150kg的电子秤。
ACS-JS系列高精度电子计数秤没有自校正,只能使用砝码进行标定。波动S1开关进入标定界面,秤台零点校正完成之后,放置标准砝码,进行量程标定。标定完成后测试一下,没有角差同时分量准确的话就可以了。
开机归零后,按零点不放,出现CAL,砝码值,可用数字键输入砝码值,放上相应砝码,自动校准。这是外部校正,需要内部校正线性修正的话,比较麻烦
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款