2013-07-18 3 views
0

я не могу показаться, чтобы получить это поняли, или я уже сделал это работает, но где-то в коде другой ошибка ...Что значит «если (дважды)» делать в C++

Мой вопрос, может кто-то перевести этот код на C++

if (!fmod(x[i][j], 1) && x[i][j]) { 

к Java equivelent. Переменная x имеет удвоение в своем списке.

Большое спасибо за помощь!

+0

FYI, в будущем было бы лучше дать более описательное имя на ваш вопрос. Например, вы могли бы сказать _Что делает «если (double)» делать в C++? _, Поскольку на основе вашего комментария на ответе jh314 это на самом деле вас путает. – DaoWen

+0

Да, это было бы лучше, я попытаюсь отредактировать вопрос, так что Google все равно индексирует его там. – Bram

ответ

1
if (x[i][j] % 1 == 0 && x[i][j] != 0) { 

Java не делает автоматического приведения типов в логический тип, так что вы должны сделать логические значения с != и ==, и т.д. . Это просто проверяет, что double на x[i][j] является отличным от нуля целым числом. (В C++ все ненулевое значение равно true, а ноль false.)

+0

Спасибо за быстрый ответ, отлично работает! – Bram

1

Вы можете просто использовать оператор % вместо fmod:

if ((x[i][j] % 1.0 == 0) && (x[i][j] != 0)) { 
+1

Это неверно, так как «if (double)» ничего не делает в Java. Я понятия не имею, что он делает в C++ ... – Bram

+0

+1 Не могу поверить, что я пропустил это, спасибо! – jh314

+0

Ха-ха, все в порядке. Спасибо за ответ! – Bram

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