两个float类型的数字相加相减

发布时间:2023年12月25日

<script type="text/javascript">

?????????function numAdd(num1, num2) {

??????????????var baseNum, baseNum1, baseNum2;

??????????????try {

???????????????baseNum1 = num1.toString().split(".")[1].length;

??????????????} catch (e) {

???????????????baseNum1 = 0;

??????????????}

??????????????try {

???????????????baseNum2 = num2.toString().split(".")[1].length;

??????????????} catch (e) {

???????????????baseNum2 = 0;

??????????????}

??????????????baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));

??????????????return (num1 * baseNum + num2 * baseNum) / baseNum;

?????????????};

?????????????/**

??????????????* 加法运算,避免数据相减小数点后产生多位数和计算精度损失。

??????????????*

??????????????* @param num1被减数??|??num2减数

??????????????*/

?????????????function numSub(num1, num2) {

??????????????var baseNum, baseNum1, baseNum2;

??????????????var precision;// 精度

??????????????try {

???????????????baseNum1 = num1.toString().split(".")[1].length;

??????????????} catch (e) {

???????????????baseNum1 = 0;

??????????????}

??????????????try {

???????????????baseNum2 = num2.toString().split(".")[1].length;

??????????????} catch (e) {

???????????????baseNum2 = 0;

??????????????}

??????????????baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));

??????????????precision = (baseNum1 >= baseNum2) ? baseNum1 : baseNum2;

??????????????return ((num1 * baseNum - num2 * baseNum) / baseNum).toFixed(precision);

?????????????};

????</script>

文章来源:https://blog.csdn.net/u014645827/article/details/135196350
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。