2013-08-13 1 views
-2

Я использую следующий код:Как проверить, является ли переменная с плавающей точкой является отрицательным в Java

//Calculating Profit and Loss 
    float difference= sell_amount-buy_amount; 
    if (flag == 0) { 
     if ((difference<0)) { 
      System.out.print("Loss "); 
      System.out.println(difference - total_extra); 

     } else { 

      System.out.println("Profit "); 
      System.out.println(difference - total_extra); 
     } 
    } 

даже если в некоторых входов, выход -0,53, он по-прежнему говорит прибыль .. где я собираюсь неправильный

+0

Выход не является 'difference' хотя ... Он вычитает' total_extra' из 'difference'. –

+9

Если разница больше 0, вы печатаете разницу total_extra, которая может быть очень отрицательной, даже если разница> 0 –

+4

Я предлагаю вам выполнить свой код в отладчик. Это та проблема, которую она предназначена для решения. –

ответ

7

Когда вы распечатываете разницу, вы также удаляете значение total_extra. Таким образом, скажем, diffrence = 0.47 и total_extra = 1. Разница действительно положительная (при этом печатается «Прибыль», но когда вы печатаете разницу значений - total_extra, вы печатаете «-0.53»

+0

-1 @joachim isaksson уже разместил это в комментарии s. вы только что скопировали –

+4

@PhilippSander Кому это нужно? Он отправил правильный ответ, и он не скопировал комментарий дословно. Кто скажет, что он не начал писать этот ответ, прежде чем этот комментарий был даже опубликован? +1 – resueman

+0

Я написал это медленно, так что уже были комментарии, когда я отправил свой ответ. Но вы правы, я должен был проверить, прежде чем отправить свой ответ. – NoWiS

Смежные вопросы