急:javascript写的公式, shiji = ((price_ping - price_in)*shou*100-shou_xu*shou)*10*hui; 有错误

问题描述

急:javascript写的公式, shiji = ((price_ping - price_in)*shou*100-shou_xu*shou)*10*hui; 有错误

javascript写的公式, shiji = ((price_ping - price_in)*shou*100-shou_xu*shou)*10*hui; , 当price_ping=46.5, price_in =46.2, shou=1, shou_xu=5 , hui=6.5 时, 结果shiji 应该为1625 ,但为为1624.9999999999816,这是为什么呀?

解决方案

js运算本身就不准确,尤其在浮点方面。一种方法是,先将浮点型升为整型运算,运算完再降,也就是先×100再÷100

另外一种办法给你财务运算函数

//js 加法计算

//调用:accAdd(arg1,arg2)

//返回值:arg1加arg2的精确结果

function accAdd(arg1,arg2){

var r1,r2,m;

try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}

try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}

m=Math.pow(10,Math.max(r1,r2))

return ((arg1*m+arg2*m)/m).toFixed(2);

}

//js 减法计算

//调用:Subtr(arg1,arg2)

//返回值:arg1减arg2的精确结果

function Subtr(arg1,arg2){

var r1,r2,m,n;

try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}

try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}

m=Math.pow(10,Math.max(r1,r2));

//last modify by deeka

//动态控制精度长度

n=(r1>=r2)?r1:r2;

return ((arg1*m-arg2*m)/m).toFixed(2);

}

//js 除法函数

//调用:accDiv(arg1,arg2)

//返回值:arg1除以arg2的精确结果

function accDiv(arg1,arg2){

var t1=0,t2=0,r1,r2;

try{t1=arg1.toString().split(".")[1].length}catch(e){}

try{t2=arg2.toString().split(".")[1].length}catch(e){}

with(Math){

r1=Number(arg1.toString().replace(".",""))

r2=Number(arg2.toString().replace(".",""))

return (r1/r2)*pow(10,t2-t1);

}

}

//js 乘法函数

//调用:accMul(arg1,arg2)

//返回值:arg1乘以arg2的精确结果

function accMul(arg1,arg2)

{

var m=0,s1=arg1.toString(),s2=arg2.toString();

try{m+=s1.split(".")[1].length}catch(e){}

try{m+=s2.split(".")[1].length}catch(e){}

return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)

}

解决方案二:

浮点型数据的显示问题

时间: 2024-10-31 19:00:11

急:javascript写的公式, shiji = ((price_ping - price_in)*shou*100-shou_xu*shou)*10*hui; 有错误的相关文章

使用JavaScript写的操作系统和输入法程序

javascript|程序   JavaScript是一门客户端的脚本语言,但是你千万不要认为它功能弱哦,因为你看了下面的例子之后就明白了. 一. 用JavaScript写的操作系统 呵呵,那天同事开玩笑说,要是有个用JS写的操作系统就好了. 我们都笑他异想天开,想不到的是,竟然真的有用JavaScript写的操作系统:JS/UIX.它的网址是:http://www.masswerk.at/jsuix/. * 系统介绍它的首页上是这么说的:JS/UIX 是一个基于Web浏览器的类Unix操作系统

javascript写的一个模拟阅读小说的程序

 这篇文章主要介绍了用javascript写了一个模拟阅读小说的程序,需要的朋友可以参考下  代码如下: <html>  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />  <head>  <title></title>  <script type="text/javascript"> 

javascript写的简单的计算器,内容很多,方法实用,推荐_javascript技巧

最近用javascript写了一个简单的计算器,自己测试感觉还好,先给大家观赏下界面: 界面就是这样了,但是功能如何呢? 现在只是个简单的标准计算器,能进行加减乘除连续运算,以及求余运算.如果发生被除数为零的错误,下面会给出提示,就像这样: 自己不知道写的怎么样,但是对于新手来说,这肯定是一份大餐,里面可以接触到的东西不少,可以拿来学习.如果有高手看出里面的疏漏.错误等望不吝赐教,给予指点. 下面贴上代码,希望里面的注释足够多了. js部分: 复制代码 代码如下: var num=0,resul

c#写的公式,vba如何调用?

问题描述 c#写的公式,vba如何调用?比如:写了个staticdoubleadd(doublea,doubleb){returna+b}在vba中应如何调用?初学者,请大侠给个实例好下载学习下. 解决方案 解决方案二:c#转化成VBA解决方案三:用C#创建COM组件解决方案四:2楼能详细些吗?解决方案五:哦,找到了相关资料.

用javascript写的字符串加密程序,用if判断程序正常,用switch出错

问题描述 用javascript写的字符串加密程序,用if判断程序正常,用switch出错 大家好,这段代码实现这样的功能: 1.用户输入全是小写字母的字符串,不支持空格和标点符号: 2.程序将字符串中的每个字母,按字母表顺序,向后移动5位,并输出新字符串: <script type="text/javascript"> var str=prompt("请输入要加密的字符串:").split(""); var newStr=[]; v

前端-javascript写一个九宫格运行出错

问题描述 javascript写一个九宫格运行出错 用循环判断胜负的时候在win[h].length处报错,Uncaught TypeError: Cannot read property 'length' of undefined,请高手解答一下,感激不尽. 解决方案 开发"> 应该是这里写错了吧 解决方案二: length是数组类型的属性,你的元素类型不确定时直接用就会报错. 修正内层for 循环j访问数组元素的代码如下:在for循环中 var var arr_i=new Array(

用Javascript写的省和城市,在后台怎么接受这两个值

问题描述 我写拉个存储过程,通过省市行业类别和企业名字来查询企业的信息,省和市是用JAVASCRIPT写的,当点击省就出现相应的市,我后台代码是这样写的protectedvoidButton1_Click(objectsender,EventArgse){hao=newQYBEM();hao.Province=this.province.Items.ToString();hao.City=this.city.Items.ToString();hao.EnterprisesName=this.ha

完全用JavaScript写成的勒索软件

本文讲的是 完全用JavaScript写成的勒索软件,不要运行JavaScript附件,这可能是勒索软件. 攻击者正使用一种被称为RAA的新型勒索软件感染计算机,该软件完全由JavaScript写成,可使用强加密锁住用户的文件. 大多数Windows上的恶意软件都是使用C和C++等编译程序语言编写的,它们的出现形式往往是.exe或者.dll这样的可迁移可执行文件.还有一些使用Windows批处理或者PowerShell这样的命令行脚本. 使用JavaScript这样基于Web的语言编写用户端恶意

使用Javascript写的2048小游戏_javascript技巧

最近心血来潮,项目结束了,使用javascript写个小游戏,练练收吧,写的不好还请各位大侠给出批评建议. HTML代码如下 <!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8" /> <link rel="stylesheet" href="2048.css"/> <scri