Javascript 如何将数字汇总到500

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是接受的最小值,如果用户写入

我有一个textinput,它只接受任何可以被500个示例1000、1500、2000、2500、3000等分的数字。 如果用户写入12263,则应舍入为12000;如果用户写入12789,则应舍入为12500

我有这个代码,但它根本不起作用,在一些数字上可以很好地工作,但在另一些数字上,它只是转到最大值

vPayrollBureauMaxOffer:是我从api获取此值时可以接受的最大值 vPayrollAmount:是用户在textinput中写入的金额 3000是接受的最小值,如果用户写入的数字小于3000,则应更改为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)