Кто то может это объяснить?

 

Прошу помощи.

Не могу понять или я заработался или я чего то не понимаю.

int n = 1;
int x = 100;

void OnTick()
  {
Comment((n+1)/100*x);
   
  }

Почему == 0, если должно быть равно 2 ?

(1+1)/100*100 = 2 

 
Vladimir Gribachev:

Прошу помощи.

Не могу понять или я заработался или я чего то не понимаю.

Почему == 0, если должно быть равно 2 ?

(1+1)/100*100 = 2 

(1+1)/100 = 0

0 * 100 = 0

Все нормально.

Не забывайте указывать тип частей выражения. Если сделать так, то будет 2:

Comment((n + 1) / 100.0 * x);
 
Vladimir Gribachev:

Прошу помощи.

Не могу понять или я заработался или я чего то не понимаю.

Почему == 0, если должно быть равно 2 ?

(1+1)/100*100 = 2 

Уже столько раз обсуждалось...

1+1 получается целочисленное значение типа int

Целое делим на целое получаем целое. То-есть получаем 0.

И на что не умножай этот 0 в результате будет тот-же ноль...

 

Спасибо большое парни, помогли!

Заработался походу, нужно в запой на неделю уйти.

Спасибо!

 
Vladimir Gribachev:

Спасибо большое парни, помогли!

Заработался походу, нужно в запой на неделю уйти.

Спасибо!

А когда вернёшься из запоя, всё забудешь и снова будешь спрашивать. ))))))))))))
 
Vladimir Gribachev:

Спасибо большое парни, помогли!

Заработался походу, нужно в запой на неделю уйти.

Спасибо!

Не-е, так говорить нельзя, подумают - алкач. Надо говорить важно - в творческий запой )) Форматировать память, проверка на битые сектора и все такое.

 
Alexey Viktorov:
А когда вернёшься из запоя, всё забудешь и снова будешь спрашивать. ))))))))))))

та такое трудно забыть. я напсиховался капец как.

в гугле забивал и получал = 2

на калькуляторе считал и получал = 2

а в шаблоне проверял и получал = 0

представляете мою реакцию? :)

я из за этого косяка не мог найти ошибку в расчетах.


Alexey Volchanskiy:

Не-е, так говорить нельзя, подумают - алкач. Надо говорить важно - в творческий запой )) Форматировать память, проверка на битые сектора и все такое.

точно точно, на недельную диагностику памяти :)

 
Vladimir Gribachev:

та такое трудно забыть. я напсиховался капец как.

в гугле забивал и получал = 2

на калькуляторе считал и получал = 2

а в шаблоне проверял и получал = 0

представляете мою реакцию? :)

я из за этого косяка не мог найти ошибку в расчетах.


точно точно, на недельную диагностику памяти :)

Полисорб не забудь купить. Вещь

 
Vladimir Gribachev:

та такое трудно забыть. я напсиховался капец как.

в гугле забивал и получал = 2

на калькуляторе считал и получал = 2

а в шаблоне проверял и получал = 0

представляете мою реакцию? :)

я из за этого косяка не мог найти ошибку в расчетах.


точно точно, на недельную диагностику памяти :)

да не

Вы правы

даже если все числа будут double, то ошибка останется

тоже наткнулся на такую бяку

не выполняйте арифметические операции после знака дроби без применения скобок, а в Вашем случае будет так:

Comment(х*(n+1)/100);
 
Renat Akhtyamov:

да не

Вы правы

даже если все числа будут double, то ошибка останется

тоже наткнулся на такую бяку

не выполняйте арифметические операции после знака дроби без применения скобок, а в Вашем случае будет так:

И в чем разница с предложенным ранее вариантом? ))) x налево переставили и что? то же самое и осталось

было:

Comment((n + 1) / 100.0 * x);
 

Всё это от старости. Старикам уже тяжело заниматься программированием, а толковые молодые уезжают на запад, в основном США.

И получается как в фильме:  В бой идут одни "старики"