从字符串更改为变量

时间:2013-08-20 16:24:48

标签: php

enter image description here

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

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

EDITED 好的,这个变量的派生真的很复杂。每一步都有其功能目的,但这是推导。在底部的最后一个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');

6 个答案:

答案 0 :(得分:1)

我认为你需要

floatval(mixed var)

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

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

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

答案 1 :(得分:1)

这将同时执行两个请求的点:

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

答案 2 :(得分:1)

您正在寻找的功能是sprintfprintf,并且专为完成这项工作而设计:

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

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

您可以将字符串输入用于float number参数(F = float,locale independent)以及整数或浮点输入。 PHP是松散的类型。

如果您想要取回字符串sprintf,请使用printf

答案 3 :(得分:1)

这是你的问题:

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

您正在尝试将$profitText转换为数字。它实际上是一串HTML,并且PHP无法设法解决它应该用它做什么,因此当你将它转换为数字时,它返回0。

解决方案:

使用$profitandloss代替

答案 4 :(得分:0)

$value = intval(floatval($profitText)*100)/100.0

答案 5 :(得分:0)

除非您先$profitText = $profitText*1;,否则我认为此$profitText = (float)$profitText;不起作用。请记住,在进行任何操作之前,必须先转换字符串。

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