【问题标题】:installments with the exact sum具有确切金额的分期付款
【发布时间】:2011-12-10 16:51:09
【问题描述】:

有什么方法可以准确计算分期付款吗?还记得这些包裹的总和就是总价值吗?我通常会做一个循环,它会在数据库中拆分和烧录,如果包裹的数量是 4,我会记录 4 条记录.. 但我想知道是否有任何方法可以将最终总和准确的部分零碎,如X = 500, P = 3,如果我除以(500 / 3)166.666 将给出...但结果是我希望得到类似:X = 500, P = 3, p¹ = 150: p² = 150, p³ = 200

图例:X = 订单价值P = 包裹数量。p¹, p², p³ = parcel 1, 2 and 3

记住,订单的价值永远不会是准确的,我得到2598.902038.80 ..等等。

【问题讨论】:

  • 准确地了解您要完成的工作有点困难。你能进一步解释一下吗?也许添加一个代码示例?
  • 你好,我不能用代码,我不知道从哪里开始,我正在尝试获取这些总和等于订单价值的包裹跨度>
  • “订单的价值,永远不会是精确的,”...但是您仍然希望您的包裹有一个自然数(整数)解吗?
  • 不完全是,包裹的价值可能包含小数,但总和必须是精确的
  • 您是否试图确定 [p1, p2, p3] = X 的所有组合的集合?或者您的问题是您试图比较浮点数的相等性(本质上是不精确的)?

标签: php numbers sum parcel


【解决方案1】:

如果我理解正确,这是我的猜测

$total = 23419.97;     // total amount
$total_parcel = 24;    // total parcel

// average parcle
$avg_parcel = floor($total / $total_parcel); // nearest integer;

// value for each parcel
$parcels = array_fill(0, $total_parcel, $avg_parcel);

// change last parcel value
// so, sum of all parcel = total
$parcels[$total_parcel-1] = $total-(($total_parcel-1)*$avg_parcel);

【讨论】:

  • 警告:array_fill() [function.array-fill]: 元素个数必须是正数
  • 天哪,这正是我所需要的!非常感谢
猜你喜欢
  • 2019-04-30
  • 2015-02-26
  • 2012-04-30
  • 2014-03-08
  • 2017-07-28
  • 2015-04-21
  • 1970-01-01
  • 2017-02-07
  • 2011-11-16
相关资源
最近更新 更多