JS高精度乘法计算问题(牛客网乘法-求 a 和 b 相乘的值,a 和 b 可能是小数,需要注意结果的精度问题)
2024-09-21 18:21:03
用到的知识点===>
toFixed(num); toFixed() 方法可把 Number 四舍五入为指定小数位数的数字; 参数num: 代表小数位数;
例:var num = 5.56789; num.toFixed(2); ==>5.57
parseFloat(string); 函数可解析一个字符串,并返回一个浮点数;参数 string 可为数字可为字符串,当参数为字符串时,判断个字符是否是数字,如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,如果不是,返回NAN;
例:parseFloat("43ar4s2");==>43 parseFloat("qwar4s2");==>NAN
三目运算符 ;
高精度乘法的一段代码例子:
function multiply(a, b) {
// 先将数字转换为字符串
var str1 = a.toString();
var str2 = b.toString();
// 获取两个数的小数位数
var lenA = (str1.indexOf('.')==-1)?0:(str1.length-str1.indexOf(".")-1);
var lenB = (str2.indexOf('.')==-1)?0:(str2.length-str2.indexOf(".")-1);
// 比较两数的精度/位数,精度大的作为结果数精度
var len = Math.max(lenA,lenB);
// 运算结果
var result = parseFloat(a*b).toFixed(len);
return result
}
multiply(4,0.45677);
==>1.82708
最新文章
- Android -- 获取接口数据的三个方法
- zip文件jQuery工作地点选择城市代码
- 5.6 WebDriver API实例讲解(16-30)
- oracle锁机制
- 设置VMWARE通过桥接方式使用主机无线网卡上网(zz)
- OpenGL超级宝典第5版&;&;glProvokingVertex
- jQuery 选择器(转)
- 使用HTML5中的Canves标签制作时钟特效
- opencv2使用形态学滤波对图像进行边缘及角点检測
- 包图Package
- Spring知识点总结
- ConfirmCancelUtilDialog【确认取消对话框封装类】
- JS之BOMBOM!
- Python操作MongoDB看这一篇就够了
- vChart
- SELinux 的初始和基本操作
- javascript五种基本类型
- 关于mysql中字符集和排序规则说明
- Xtreme9.0 - Light Gremlins 容斥
- IE6不兼容postion:fixed已解决