2016-02-25 98 views
0

我在PHP中有一些功能,我在SQL中執行一些查詢並從用戶輸入中獲取一個數字。獲取減號或加號

而我在那堆疊應該如何。

我的代碼:

$x = $request->input('usd'); 
$roi = $profit/$request->input('usd'); 
$cor = $request->input('usd') - $profit; 
$prof = abs($profit); 

$data['roi'] = $roi >= 0 ? '+'. $roi : '-'. $roi; 
$data['cor'] = $cor >= $x ? '+' . $cor : '-' . $cor; 
$data['prof'] = $profit >= $x ? '+' . $prof : '-' . $prof; 

其中,例如$x = 1000$ 但它總是一個+在零下數和加 - 數字。

UPDATE:

我做在一個PHP調試我得到的零下

 $x = '1000'; 
     echo 'X: ' . $x . '<br />'; 
     $pro = '-0.59%'; 
     $roi = $pro/$x; 
     echo 'ROI: ' . $roi . '<br />'; 
     echo sprintf('ROI: ',$roi); 
     $cor = $pro - $x; 
     echo 'COR: ' . $cor . '<br />'; 
     $prof = $pro; 
     echo 'PROFIT: ' . $pro . '<br />'; 
     ?> 

,但如果我在AJAX打印其現在顯示負數。 結果:

X:1000 ROI:-0.00059 ROI:COR:-1000.59 利潤:-0.59%

+3

爲什麼不使用[sprintf()](http://www.php.net/manual/en/function.sprintf.php)和一個強制顯示標誌的格式掩碼 - [Demo](https ://3v4l.org/tdse7) –

+0

和你想做什麼?什麼不能在你的代碼中工作? – ogres

+0

其allways顯示一個加號不是減號。喜歡:我有1000 $ - 5000 $ 它顯示我4000 $,但不在減號。我需要它鏈接-4000 $ –

回答

1

我建議你做一些調試跟蹤你的價值觀。每當我遇到這樣的情況時,都很高興看到每個值如何跟蹤。您可以使用調試軟件,如http://phpdbg.com/或者你總是可以做手工調試,如下列:

$x = $request->input('usd'); 
    echo 'X:" $x . '<br>'; 
    $roi = $profit/$request->input('usd'); 
    echo 'ROI:" $x . '<br>'; 
    $cor = $request->input('usd') - $profit; 
    echo 'COR:" $x . '<br>'; 
    $prof = abs($profit); 
    echo 'PROF:" $x . '<br>'; 

    $data['roi'] = $roi >= 0 ? '+'. $roi : '-'. $roi; 
    echo 'data[roi]:" $x . '<br>'; 
    $data['cor'] = $cor >= $x ? '+' . $cor : '-' . $cor; 
    echo 'data[cor]:" $x . '<br>'; 
    $data['prof'] = $profit >= $x ? '+' . $prof : '-' . $prof; 
    echo 'data[prof]:" $x . '<br>'; 

調試器顯然是更優雅,但有時​​簡單的值跟蹤手冊並沒有那麼糟糕。

+0

奇怪的是它是$ data ['cor']和$ data ['prof']是否給你意想不到的結果?我只問,因爲在$ data ['roi']中,您是基於明確的值進行比較,其他兩種情況下基於變量$ x,因此再次進行調試將幫助您瞭解值的影響三元條件 –