【问题标题】:calculate value & display negative number ( if applicable )计算值并显示负数(如果适用)
【发布时间】:2017-10-23 13:18:05
【问题描述】:

好的,所以在数据库表中我有 2 个列和值 让我们说 打开 = 1.23450 & 关闭 = 1.23400

现在这里是我试图用于计算的 PHP 代码

 $pips = abs($value['close'] - $value['open'])*1;

这应该返回一个值 -0.0005 但是,当我回显 $pips

时,它只是简单地返回值 0

【问题讨论】:

  • 我认为将这些值存储为 123450 和 123400 会更好。浮点运算不会产生准确的结果。
  • 是固定小数点后的位数(5位?)
  • 它存储了一个准确的值,这需要一个小数点,所以我不能和 5 个小数位的固定值 * 只需要检查

标签: php negative-number


【解决方案1】:

如果小数点后的位数是固定的(比如 5 位精度)

 $pips = abs($value['close']*100000 - $value['open']*100000);
 $pips = $pips/100000;

【讨论】:

  • 你的代码给了我不能使用 mysqli_result 类型的对象作为数组 $pips = abs($value['close']*100000 - $value['open']*100000); // 这一行
  • @ChrisYates 不。我只是假设 $value['close'] 和 $value['open'] 是有效的浮点值。我不知道你是如何从 mysql 查询中获取它们的。
  • 只是一个简单的选择 * 作为即时测试,我将它们存储为 float $query = mysqli_query($con,"SELECT * FROM prices"); $value = mysqli_fetch_assoc($query);
  • 代码工作认为我的问题已被缓存:) 非常感谢
  • 很高兴知道这一点
【解决方案2】:

您正在使用 abs() 它返回一个数字的绝对正值,因此您需要乘以“-1”(减号),并且建议的浮点在 PHP 中不太好,因此最好将 $pips 计算为先是整数,然后根据点后的位数除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-01
    • 1970-01-01
    相关资源
    最近更新 更多