js价格递增递减,保留亿位小数

本文介绍了一种用于价格递增和递减的算法实现,重点在于处理价格变动时的小数位数,确保数值精度,特别是在涉及亿级单位时的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求需要做一个价格递增递减效果,思路是:

1、0为终点,递增无上限,并且保留亿位小数;

2、递减0为下限,并且保留亿位小数;废话不多说,直接上代码。

// 价格递增-当前参数分别是:当前价格/多少倍数=(添加"add"为递增,不添为递减)

function priceAdd(a,b,c){
// 获取小数位置,整数和小数单独处理
var i = a.indexOf('.');

if(a.indexOf('.') !='-1'){
// 当前价格 * 一亿,进行递增
var a = Number(a)* Number(b);
// 设置递增或递减
if(c =='add'){
a++;
}else{
a = --a;
}
// 使用正则处理一亿小数
var a = numberStr1(a,b);
return a;
}else{
// 当前价格 * 一亿,进行递增
var a = Number(a)* Number(b);
// 设置递增或递减
if(c =='add'){
a++;
}else{
a = --a;
}
a = Number(numberStr1(a,b));
return a;
}

}

其中保留7位小数,计算机没有问题,但是保留8位小数会出现科学计算,处理方法是:

// 动态价格:当前价格/改为动态一个亿
function numberStr1(str,str1){
var s = (Number(str)/Number(str1)).toFixed(8).replace(/\.0+$/, "").replace(/(\.\d+[1-9])0+$/, "$1");
return s;
}

// 当前价格/一个亿、添加add为递增,不添加为递减
priceAdd(a,b,c)

a:当前价格
b:一亿小数
c:添加add为递增,不添加为递减

转载于:https://www.cnblogs.com/aihao/p/9968626.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值