Php 我如何将“四分之一票”、“半票”、“全票”的价格从75000分片₺

Php 我如何将“四分之一票”、“半票”、“全票”的价格从75000分片₺,php,Php,你好。我有75000₺ 奖我想按奖品类型颁发奖品: 1张全票=10个结果 2张半票=14分结果 三季度票证=201结果 $total = 75000; $sql = $db->query("SELECT * FROM winners WHERE sayisi='5'"); while($list = $sql->fetch_object()) { echo ($list->bilet_id)." - "

你好。我有75000₺ 奖我想按奖品类型颁发奖品:

1张全票=10个结果

2张半票=14分结果

三季度票证=201结果

$total = 75000;
$sql = $db->query("SELECT * FROM winners WHERE sayisi='5'");

while($list = $sql->fetch_object()) {
        
        echo ($list->bilet_id)." - ";
        echo ($list->client_id)." - ";
        echo ($list->odultipi)." - ";
        echo " ODUL: ". floor($total / $sql->num_rows)."<br>";
        
}
当我编写这段代码时,它为所有客户端提供了修复结果

我想要这样的结果

全票9客户端=334₺ 3.006₺

半票14客户=167₺ 2.338‬ ₺

对于季度票201客户=84₺ 16.884‬ ₺

总共75000₺ 应该是结果

我怎么能用数学来计算呢?我需要你的帮助。

我解决了

这是我的密码

$total = 75000;
$sql = $db->query("SELECT * FROM kazananlar WHERE sayisi='5'");
$tam = $total / $sql->num_rows; // If normal count num rows for all

while($list = $sql->fetch_object()) {
        if($list->odultipi == "1") {
            $sonuc = $tam;  // If 1=Full Ticket  give $tam result.
        }
        if($list->odultipi == "2") {
            $sonuc = $tam / 2;  // If 2=Half Ticket  give $tam / 2 result.
        }
        if($list->odultipi == "3") {
            $sonuc = $tam / 4;  // If 3=Quarter Ticket  give $tam / 4 result.
        }
        echo ($list->bilet_id)." - ";
        echo ($list->client_id)." - ";
        echo ($list->odultipi)." - ";
        echo " ODUL: ". floor($sonuc)."<br>";

}

如果有人需要,我可以这样用。谢谢您的关心。

换一种方式思考:

全票=4股 半票=2股 季票==1股 因此:

我假设您货币的最小零值为0.01,并将所有金额四舍五入,这样您就不会出现支付超过75000美元的情况。根据业务规则和/或当地法律,您可能有更复杂的要求。有这样的库可以帮助您处理此问题

结果:

array(3) {
  ["full"]=> float(1115.24)
  ["half"]=> float(557.62)
  ["quarter"]=> float(278.81)
}
总数:74999.89

重要提示:由于上述四舍五入问题以及浮点数学的不精确性,您不应该实际将货币存储为浮点数。例如,MoneyPHP将只处理最小分数值的整数量

例如:


虽然这个确切的情况比我有时间在MoneyPHP中充分实现更复杂。

这看起来像是一个数学问题,而不是编程问题。为什么不在数学堆栈交换上提问呢?谢谢你@Zuoanqh。我不知道有这么一个帮助网站。他们能像php一样帮助你吗?Ismail Altunören我想如果你用数学来解释这个问题会更容易理解。例如,我有xxx笔钱,我想在xxx人之间分配,下面是我如何分配的。然后你可以用php实现这个答案。但在php中,我无法使用完美计数。需要更多详细信息。。。四分之一的票意味着如果我得到了价格,我会得到一张全票价格的四分之一?
array(3) {
  ["full"]=> float(1115.24)
  ["half"]=> float(557.62)
  ["quarter"]=> float(278.81)
}
$one_dollar = Money::USD(100);
$result = $one_dollar->allocateTo(3);    // $result = [34, 33, 33]