js中进行金额计算

您所在的位置:网站首页 js点击物品计算价格的方法 js中进行金额计算

js中进行金额计算

2024-01-28 18:59| 来源: 网络整理| 查看: 265

JavaScript提供了3个显式的类型转换函数,分别是eval()、parseInt()和parseFloat()。

eval()函数:将字符串表达式转换成数字值。例如,语句total=eval("432.1*10")的结果是total=4321即将数值4321赋予total变量。

parseInt()函数:把字符串转换成整数。返回是从字符串的第一个字符开始,如果字符不是以整数开头则返回0。parseInt()函数还可以转换十六进制数或十进制数。

例如:parseInt("123xyz") 返回123,而parseInt("xyz")返回0。

parseFloat()函数:类似于parseInt()函数,它返回字符串上包含的第一个浮点数。如果字符串不以有效浮点数开头,则返回0。

例如:parseFloat("2.1e4xyz")返回21000;而parseFloat("xyz")返回0。

JavaScript中parseFloat函数方法是返回由字符串转换得到的浮点数。 使用方法:

parseFloat(numString)其中numString 参数是包含浮点数的字符串。JavaScript中parseFloat函数方法返回与 numString 中保存的数相等的数字表示。如果 numString 的前缀不能解释为浮点数,则返回 NaN (而不是数字)。

parseFloat("abc") // 返回 NaN。  parseFloat("1.2abc") // 返回 1.2。

在js中进行以元为单位进行金额计算时 使用parseFloat会产生精度问题 var price = 10.99; var quantity = 7; var needPay = parseFloat(price * quantity); needPay的正确结果应该是76.93元  但是运行后发现needPay为76.93000000000001  此情况可通过 toFixed(n)  方法修正 但是这个方法对 js版本要求较高 不能兼容ie5 另一个解决方案是: 将元为单位的金额乘以100换算为分进行计算 var price = 10.99 var quantity = 7 var needPay = Math.floor(parseFloat(price*100 * quantity))/100; parseFloat(price*100 * quantity)的计算结果是7693.000000000001   使用Math.round()方法四舍五入,再除100  即为正确的结果

Math.ceil() 是向上取整 Math.floor()是向下取整 Math.round()是四舍五入

第一种:四舍五入 Math.round(parseFloat("234432.9")-parseFloat"0.2")); 第二种:保留几位小数 num.toFixed(2); toFixed(n)中的n代表保留几位 第三种:扩大一定的倍数,对结果在缩小这个倍数 var num1=parseFloat("234432.9")*1000000000000; var num2=parseFloat("0.2")*1000000000000; var num3=(num1-num2)/1000000000000; 结果为 234432.7



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3