1

在此处输入图像描述

嗨,伙计们,在这里只需要一点帮助。右边的绿色数字是字符串。如何将它们更改为数字?此外,我还需要它们是小数点后 2 位。我用什么功能??我尝试了下面的方法,但输出为 0。欢迎大家回答。

$profitText = $profitText*1;
$profitText = (float)$profitText;
round($profitText,2); 
number_format($profitText, 2);

编辑 好的,这个变量的推导真的很复杂。每个步骤都有其功能目的,但这是推导。在底部的最后一个 profitText 之后,我意识到这现在是一个字符串。为什么呢?我该如何解决?

 $offeropen=$row['offerprice'];//1.3334
      $pips=$offerpricepl-$offeropen;//difference btw prices , eg. 0.0023
      $closedb=$offerpricepl;// nothing
      $pips1=round($pips, 6);// round to 6 decimal points
      $pips2 = str_replace('.', '', $pips1);// remove decimal
        if ($pips2<0)
      {
        $pips2 = str_replace('-', '', $pips2);// methodology for adjusting figures and negative values back
        $pips2 = ltrim($pips2, '0');
        $pips2 = -1 * abs($pips2);
      }
      else {
        $pips2 = ltrim($pips2, '0');// for triming 0 on the left
      }
      $pips3=$pips2/$minipipskiller;// methodology
    $ticksize= "0.0001";// FOR PROFIT AND LOSS
      $lot1 = "100000";
      $sizecalc=$row['size'] * $lot1;

        if ($row['type']=="buy")
      { 
        $profitandloss=$sizecalc*$ticksize*$pips3; //per TRADE
      }
      if ($row['type']=="sell")
      {
        $profitandloss=$sizecalc*$ticksize*$pips3; //per TRADE
      }

      $zero= '0';

      if($profitandloss<$zero) {
            $profitText = "<div style=\"color: red;\">$profitandloss</div>";
        } elseif ($profitandloss>$zero) {
            $profitText = "<div style=\"color: green;\">$profitandloss</div>";
        }
        // for profit and loss counting

        $profitText=ltrim($profitText,'0');
4

6 回答 6

1

我想你需要

floatval(mixed var)

http://www.php.net/manual/en/function.floatval.php

$profit = round(floatval(trim($profitText)), 2);

证明:http ://codepad.org/jFTqhUIk

于 2013-08-20T16:27:30.393 回答
1

这将同时完成两个请求点:

$floatProfitVar = number_format($profit, 2, '.');

于 2013-08-20T16:32:01.280 回答
1

您正在寻找的功能是sprintfprintf已经专为该工作而设计:

printf('%.2F', '1.8'); # prints "1.80"

演示:https ://eval.in/44078

您可以将字符串输入用于浮点数参数(F = 浮点,与语言环境无关)以及整数或浮点输入。PHP 是松散类型的。

sprintf如果您想取回一个字符串,请使用,printf直接打印。

于 2013-08-20T16:43:52.793 回答
1

这是你的问题:

$profitText = "<div style=\"color: red;\">$profitandloss</div>";

你正试图$profitText变成一个数字。它实际上是一个 HTML 字符串,PHP 无法计算出它应该做什么,所以当你将它转换为一个数字时,它返回 0。

解决方案:

$profitandloss改为使用

于 2013-08-20T17:14:47.417 回答
0
$value = intval(floatval($profitText)*100)/100.0
于 2013-08-20T16:30:20.120 回答
0

除非您先这样做,否则我认为这$profitText = $profitText*1;不会起作用$profitText = (float)$profitText;。请记住,您必须先转换字符串,然后才能进行任何操作。

floatval(mixed $var) 也可以用来代替类型转换,但类型转换应该可以正常工作

于 2013-08-20T16:31:22.623 回答