【问题标题】:PHP Auto Increment a (float) column from another column dataPHP自动从另一列数据增加一个(浮动)列
【发布时间】:2017-03-02 18:36:11
【问题描述】:

我的程序是这样开始的:

START  |   B    |  S      |  P       |
4000   | 215.05 | 4182.72 |  182.72  |

地点:

B = 买入
S = 卖出

P = 利润。

我是这样计算值的:

bv = 18.60; //fixed value
sv = 19.45; //fixed value
START = 4000; //fixed value 
B = (START/bv);
S = (B*sv);
P = (S-START);

如何将“SELL”值作为循环存储在“START”中并接收如下表格:

START  |   B    |  S      |  P       |
4000   | 215.05 | 4182.72 |  182.72  |
4182.72| 224.87 | 4373.72 |  191.00  |

??

我试过了:

$start= 4000;
//$inic = $cashinic;
$bv= 18.6; //buy value
$sv= 19.45;//sell value

$buy= ($start/$bv);
$sell = ($comp*$sv);
$profit = ($sell-$start);

for($i = 1; $i<=100; $i++)
{
?>
  <tr>
    <td><div align="center"><?php echo $start; ?> </div></td>
    <td><?php echo $buy; ?></td>
    <td><?php echo $sell; ?></td>
    <td><div align="center"><?php echo $profit; ?> </div></td>
   </tr>
<?php
}
?>
</table>

但它只给我这个结果:

START  |   B    |  S      |  P       |
4000   | 215.05 | 4182.72 |  182.72  |
4000   | 215.05 | 4182.72 |  182.72  |
4000   | 215.05 | 4182.72 |  182.72  |
....   | ...... | ....... |  ......  |

等等…… 非常感谢您的帮助。

我是否需要另一列作为自动增量列? 像这样:

Col_index |START  |   B    |  S      |  P       |
      1   | 4000  | 215.05 | 4182.72 |  182.72  |
      2   |  ...  |  ...   |   ...   |   ...    |

P.D.我没有使用数据库,有必要吗? (主要是因为我认为我不需要数据库)

【问题讨论】:

  • 在循环内移动数学,使其每次递增。您还使用$inic 而不是$start
  • 让我检查一下,我也更正了你所说的$inic和$start问题,谢谢!
  • 它的显示与在循环外时相同:(

标签: php loops for-loop cycle control-structure


【解决方案1】:

您需要在循环结束时更新$start,以便下一次迭代使用新值:

$start = 4000;
$bv = 18.6;
$sv = 19.45;

for($i = 1; $i <= 100; $i += 1) {
    $buy = $start / $bv;
    $sell = $buy * $sv; // I replaced $comp with $buy is that correct?
    $profit = $sell - $start;
    echo $start . "\t" . $buy . "\t" . $sell . "\t" . $profit . "\n";

    // update start
    $start = $sell;
}

输出:

4000    215.05376344086 4182.7956989247 182.79569892473
4182.7956989247 224.8814891895  4373.9449647358 191.14926581108
4373.9449647358 235.15833143741 4573.8295464576 199.8845817218
4573.8295464576 245.90481432568 4782.8486386344 209.01909217683
...

如果您不喜欢增加 $start(可能会出现舍入错误),您还可以通过一些巧妙的数学运算将 $start 设置为 row-$i 的值:

$start = 4000;
$bv = 18.6;
$sv = 19.45;

for($i = 0; $i < 100; $i += 1) { // loop needs to start at 0
    $s = $start * pow($sv / $bv, $i);
    $buy = $s / $bv;
    $sell = $buy * $sv;
    $profit = $sell - $start;
    echo $s . "\t" . $buy . "\t" . $sell . "\t" . $profit . "\n";
}

【讨论】:

  • 这是正确答案,非常感谢@Halcyon!我完全忘记了start 更新!再次,真的非常感谢您!
猜你喜欢
  • 2013-05-18
  • 1970-01-01
  • 2014-08-11
  • 2019-02-07
  • 2016-01-04
  • 2011-03-12
  • 2016-05-15
  • 2021-04-20
  • 1970-01-01
相关资源
最近更新 更多