Javascript 如何将数字汇总到500
我有一个textinput,它只接受任何可以被500个示例1000、1500、2000、2500、3000等分的数字。 如果用户写入12263,则应舍入为12000;如果用户写入12789,则应舍入为12500 我有这个代码,但它根本不起作用,在一些数字上可以很好地工作,但在另一些数字上,它只是转到最大值 vPayrollBureauMaxOffer:是我从api获取此值时可以接受的最大值 vPayrollAmount:是用户在textinput中写入的金额 3000是接受的最小值,如果用户写入的数字小于3000,则应更改为3000 这是我的密码Javascript 如何将数字汇总到500,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我有一个textinput,它只接受任何可以被500个示例1000、1500、2000、2500、3000等分的数字。 如果用户写入12263,则应舍入为12000;如果用户写入12789,则应舍入为12500 我有这个代码,但它根本不起作用,在一些数字上可以很好地工作,但在另一些数字上,它只是转到最大值 vPayrollBureauMaxOffer:是我从api获取此值时可以接受的最大值 vPayrollAmount:是用户在textinput中写入的金额 3000是接受的最小值,如果用户写入
const validatePayroll = () => {
if(vPayrollAmount <= 3000){
return setvPayrollAmount((3000));
}
if(vPayrollAmount >= vPayrollBureauMaxOffer){
return setvPayrollAmount(vPayrollBureauMaxOffer.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','));
}
if((vPayrollAmount >= 3000) && (vPayrollAmount <= vPayrollBureauMaxOffer)){
return setvPayrollAmount(Math.floor(vPayrollAmount / 500.0) * 500.0);
}
};
<TextInput
style={styles.inputs}
placeholder={`${vPayrollAmount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}`}
placeholderTextColor={theme.SECONDARY_TEXT_COLOR}
keyboardType={'numeric'}
underlineColorAndroid="transparent"
autoCorrect={false}
autoCapitalize="characters"
value={vPayrollAmount}
onBlur={() => validatePayroll(vPayrollAmount)}
onChangeText={setvPayrollAmount}
/>
const validatePayroll=()=>{
if(vPayrollAmount=vPayrollBureauMaxOffer){
返回setvPayrollAmount(vPayrollBureauMaxOffer.toString().replace(/\B(?=(\d{3})+(?!\d))/g',,');
}
如果((vPayrollAmount>=3000)和&(vPayrollAmount)
通常要做的事情是除以倍数(在您的例子中为500),将结果四舍五入,然后乘以倍数:
const值=[1226312789];
for(值的常量值){
常数结果=数学四舍五入(值/500)*500;
log(`${value}=>${result}`);
}
通常要做的事情是除以倍数(在您的例子中为500),将结果四舍五入,然后乘以倍数:
const值=[1226312789];
for(值的常量值){
常数结果=数学四舍五入(值/500)*500;
log(`${value}=>${result}`);
}
该代码仅在数字大于最大值时才放置千个分隔符
更换这条线
return setvPayrollAmount(vPayrollBureauMaxOffer.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','))
关于这一点:
return setvPayrollAmount(vPayrollBureauMaxOffer)
该代码仅当数字大于最大值时才放置千个分隔符 更换这条线
return setvPayrollAmount(vPayrollBureauMaxOffer.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','))
关于这一点:
return setvPayrollAmount(vPayrollBureauMaxOffer)