基于18的倍数的JavaScript数字规则



我正在使用FusionPro为基于捐赠者最后一份礼物的呼吁信创建一个礼物请求字符串。这封信是邮寄给犹太人口众多的地区的,因此,如果捐赠者的最后一份礼物是18的倍数,则需要相应地创建询问字符串,并且只使用18的倍数。这是我目前的脚本,根据上一份礼物创建要价。如何处理18的倍数?

//$Ask2 Round to nearest 5//
function round5(x)
{
    return Math.ceil(x/5)*5;
}
var Ask1 = Field("Last Gift "); 
var round = (round5(Ask1));

var plus10 = parseInt(round) + StringToNumber("10")
var plus15 = parseInt(round) + StringToNumber("15")
var plus20 = parseInt(round) + StringToNumber("20")
var plus30 = parseInt(round) + StringToNumber("30")
var plus50 = parseInt(round) + StringToNumber("50")
var plus75 = parseInt(round) + StringToNumber("75")
var plus100 = parseInt(round) + StringToNumber("100")
var plus150 = parseInt(round) + StringToNumber("150")
var plus250 = parseInt(round) + StringToNumber("250")
var plus500 = parseInt(round) + StringToNumber("500")

if (StringToNumber(round) == StringToNumber(""))
{
    return "250";
}
if (StringToNumber(round) <= StringToNumber("21"))
{
    return "45";
}
if (StringToNumber(round) >= StringToNumber("24") && StringToNumber(round) <= StringToNumber("50"))
{
    return FormatNumber("#,###", plus20);
}
if (StringToNumber(round) >= StringToNumber("49") && StringToNumber(round) <= StringToNumber("100"))
{
    return FormatNumber("#,###", plus20);
}
if (StringToNumber(round) >= StringToNumber("99") && StringToNumber(round) <= StringToNumber("300"))
{
    return FormatNumber("#,###", plus75);
}
if (StringToNumber(round) >= StringToNumber("299") && StringToNumber(round) <= StringToNumber("1000"))
{
    return FormatNumber("#,###", plus150);
}
if (StringToNumber(round) >= StringToNumber("1000"))
{
    return FormatNumber("#,###", plus250);
}
else
return "";
}
//End $Ask2 Rule//

查找任何数字是否可被另一个整除的最简单方法是使用mod运算符。在许多语言中,操作员是%Reference

基本上,mod运算符在除法运算后给你余数。例如

4%2是0 7%2是3余数1。提供的结果为"1"因为这是剩余的

var x = 7;
var y = 2;
var z = x % y;
console.log(z);

要查找数字是否是x的倍数,请使用%函数

所以

if (StringToNumber(round) % 18 === 0) {
  // Number is a multiple of 18
}

最新更新