首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每150个花销就有20个学分,但如果160个被花掉了,就没有学分了。

每150个花销就有20个学分,但如果160个被花掉了,就没有学分了。
EN

Stack Overflow用户
提问于 2013-11-25 01:00:15
回答 2查看 62关注 0票数 0

我在写一个客户忠诚度系统。我有一个页面,在其中输入用户的客户ID和他们花费的金额。我想把它写到他们每花150美元,他们就能用20美元的地方,但是我碰到了一个颠簸。

假设用户当前的余额是140美元。他们需要再花10美元才能申请信贷。然而,如果他们花了20美元,他们的余额就会变成160美元,而不使用任何信贷。

有什么建议吗?

代码语言:javascript
复制
$transac['newBalance'] = $row['balance'] + $transac['amount'];

    if ($transac['newBalance']%150 == 0 ) {
        // +20 to credit
        $transac['newCredit'] = $row['credit'] + 20;
        $query = "UPDATE customers SET credit='" . $transac['newCredit'] . "' WHERE userid = '" . $transac['username'] . "'";
        if (!mysqli_query($mysqli, $query)) {
            die("Query Error (" . $query . "): " . mysqli_error($mysqli));
        }
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-25 01:16:21

你需要考虑新的支出是否使总余额超过150美元的新倍数。

代码语言:javascript
复制
$transac['newBalance'] = $row['balance'] + $transac['amount'];
$oldMultiple = floor($row['balance']/150); //Previous multiple of 150
$newMultiple = floor($transac['newBalance']/150); //Current multiple of 150
$difference=$newMultiple-$oldMultiple; //Are they different?

if ( $difference>0 ) {
    // +20 to credit for each multiple of $150 that was passed
    $transac['newCredit'] = $row['credit'] + 20 * $difference;
    $query = "UPDATE customers SET credit='" . $transac['newCredit'] . "' WHERE userid = '" . $transac['username'] . "'";
    if (!mysqli_query($mysqli, $query)) {
        die("Query Error (" . $query . "): " . mysqli_error($mysqli));
    }
}
票数 3
EN

Stack Overflow用户

发布于 2013-11-25 01:01:39

%是这里的错误运算符。你想要简单的组织。你只需将他们的总支出除以150,再加上四舍五入,你就可以计算出他们有多少20美元的学分。

例如,如果有人花了140美元,140 / 150,四舍五入,是0。

如果某人花了310美元,310 / 150是2.06;四舍五入,你得到2,所以他们有2个20美元的学分,或者(2 * 20) 40美元。

您可以将PHP的floor用于下拉式部分:

代码语言:javascript
复制
$spent = 140.0;

$credits = floor($spent / 150.0) * 20; # 0

$spent = 310.0;

$credits = floor($spent / 150.0) * 20; # 40
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20183244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档