Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript数学计算案例_Javascript_Jquery - Fatal编程技术网

JavaScript数学计算案例

JavaScript数学计算案例,javascript,jquery,Javascript,Jquery,我需要进行如下JavaScript计算: function calcPrice(value) { if (value <= 500000) { return 30 * Math.ceil(value / 100000); } else if (value <= 1000000) { return 150 + 25 * Math.ceil((value - 500000) / 100000); } else { return 275 + 20 * M

我需要进行如下JavaScript计算:

function calcPrice(value) {
  if (value <= 500000) {
    return 30 * Math.ceil(value / 100000);
  } else if (value <= 1000000) {
    return 150 + 25 * Math.ceil((value - 500000) / 100000);
  } else {
    return 275 + 20 * Math.ceil((value - 1000000) / 100000);
  }
}
1-500000点$30/100000点

500001-999999点$25/100000点

1000000+积分$20/100000积分

我有一个case开关,它将检查值,然后得到正确的和,但我想知道如何做,例如,如果用户输入4500000点或某个超过1100000点的随机值

这就是我目前拥有的:

  if (Number(amountOfPoints) > Number(0)) {
    switch (true) {
        case (amountOfPoints > 0 && amountOfPoints <= 100000):
            {
                price = 30;
                break;
            }
        case (amountOfPoints > 100000 && amountOfPoints <= 200000):
            {
                price = 60;
                break;
            }
        case (amountOfPoints > 200000 && amountOfPoints <= 300000):
            {
                price = 90;
                break;
            }
        case (amountOfPoints > 300000 && amountOfPoints <= 400000):
            {
                price = 120;
                break;
            }
        case (amountOfPoints > 400000 && amountOfPoints < 500000):
            {
                price = 150;
                break;
            }
        case (amountOfPoints > 500000 && amountOfPoints < 600000):
            {
                price = 150;
                break;
            }
        case (amountOfPoints > 600000 && amountOfPoints < 700000):
            {
                price = 160;
                break;
            }
        case (amountOfPoints > 700000 && amountOfPoints < 800000):
            {
                price = 185;
                break;
            }
        case (amountOfPoints > 800000 && amountOfPoints < 900000):
            {
                price = 210;
                break;
            }
        case (amountOfPoints > 900000 && amountOfPoints < 1000000):
            {
                price = 235;
                break;
            }
        case (amountOfPoints <= 1000000):
            {
                tweetsPrice = 200;
                break;
            }
        default:
            price = 0;
            break;
    }
}
if(数量(amountOfPoints)>数量(0)){
开关(真){
案例(amountOfPoints>0&&amountOfPoints 100000&&amountOfPoints 200000&&amountOfPoints 300000&&amountOfPoints 400000&&amountOfPoints<500000):
{
价格=150;
打破
}
案例(数量点>500000和数量点<600000):
{
价格=150;
打破
}
案例(数量点>600000和数量点<700000):
{
价格=160;
打破
}
案例(数量点>700000和数量点<800000):
{
价格=185;
打破
}
案例(数量点>800000和数量点<900000):
{
价格=210;
打破
}
案例(数量点>900000和数量点<1000000):
{
价格=235;
打破
}
案例(数量为1100000?每100000增加20美元

更新
也许我不清楚我需要什么。以下是我需要的:一旦价值超过1100000,将相应地计算价格,例如1100001到1200000之间的分数价格将为220美元,1200001到1300000之间的分数将为240美元,等等,没有限制,因此例如4500001和4600000的价格将为720美元。

我有点累,但我认为这可能适用于任何情况:

var price = 30,
    strPoints = amountOfPoints.toString(),
    points = Number(amountOfPoints);

if (points >= 100000) {
  var multiplier = Number(points.toString().substring(0, 5 - strPoints.length));
  price += 20 * multiplier;
}
基本上只是做
price=30+20*数量点的数量点的数量点的数量点的数量点
其中数量点大于100000。子字符串部分给出6位数时的1,7位数时的2,依此类推

这应该适用于用例“每100000增加20美元”。但是您的用例语句为不遵循此模式的价格分配值。因此,您必须在您的积分足够大以超过这些条件后使用此代码。

您可以键入积分并查看奖励值

你的积分系统似乎是任意的,所以我改为总是从1开始,而不是有时从0开始,有时从1开始。如果你不喜欢,那么你可以更改函数

function points(inText) {
    var inNum = (isNaN(Number(inText))) ? 0 : Math.floor(Number(inText));
    inNum = Math.floor(inNum / 100000);
    if (inNum < 5) {
        inNum = inNum * 30;
    } else {
        if (inNum < 10) {
            inNum = (inNum - 5) * 25 + 150;
        } else {
            inNum = (inNum - 10) * 20 + 275;
        }
    }  
    return inNum;
}
功能点(inText){
var inNum=(isNaN(Number(inText))?0:Math.floor(Number(inText));
inNum=数学楼层(inNum/100000);
if(inNum<5){
inNum=inNum*30;
}否则{
if(inNum<10){
inNum=(inNum-5)*25+150;
}否则{
inNum=(inNum-10)*20+275;
}
}  
返回inNum;
}

通常,它的工作原理如下:

function calcPrice(value) {
  if (value <= 500000) {
    return 30 * Math.ceil(value / 100000);
  } else if (value <= 1000000) {
    return 150 + 25 * Math.ceil((value - 500000) / 100000);
  } else {
    return 275 + 20 * Math.ceil((value - 1000000) / 100000);
  }
}
函数计算(值){

if(value)为什么是jQuery标记?我看不到任何。@j08691它在那里似乎是一个if语句,您不需要同时进行比较。