Порядок арифметических операций. Что я делаю не так?
От: by  
Дата: 12.06.05 09:41
Оценка:
Почему
Int32 _progressPersent = (2/4)*100; // получает в результате 0
а
Int32 _progressPersent2 = 100*2/4; // получает в результате 50
?
FrameWork 1.1, Studio 2003
Где я ошибаюсь?
Re: Порядок арифметических операций. Что я делаю не так?
От: Mab Россия http://shade.msu.ru/~mab
Дата: 12.06.05 09:46
Оценка:
by> Int32 _progressPersent = (2/4)*100; // получает в результате 0
2/4 == 0 поскольку это целочисленное деление.
Re: Порядок арифметических операций. Что я делаю не так?
От: Rumata Россия http://atamur.livejournal.com
Дата: 12.06.05 09:57
Оценка:
Здравствуйте, by, Вы писали:

by>Почему

by> Int32 _progressPersent = (2/4)*100; // получает в результате 0
by>а
by> Int32 _progressPersent2 = 100*2/4; // получает в результате 50
by>?
by>FrameWork 1.1, Studio 2003
by>Где я ошибаюсь?
см ответ выше
+
надо писать 2.0/4 или (double)2/4
тогда будет работать
Re: Порядок арифметических операций. Что я делаю не так?
От: Avara  
Дата: 12.06.05 10:25
Оценка:
Здравствуйте, by, Вы писали:

by>Почему

by> Int32 _progressPersent = (2/4)*100; // получает в результате 0
by>а
by> Int32 _progressPersent2 = 100*2/4; // получает в результате 50
by>?
by>FrameWork 1.1, Studio 2003
by>Где я ошибаюсь?

А потому, что 2/4 — это операция целочисленного деления, которая в результате дает 0.
Re[2]: Порядок арифметических операций. Что я делаю не так?
От: by  
Дата: 12.06.05 10:58
Оценка:
Здравствуйте, Rumata, Вы писали:

R>Здравствуйте, by, Вы писали:


by>>Почему

by>> Int32 _progressPersent = (2/4)*100; // получает в результате 0
by>>а
by>> Int32 _progressPersent2 = 100*2/4; // получает в результате 50
by>>?
by>>FrameWork 1.1, Studio 2003
by>>Где я ошибаюсь?
R>см ответ выше
R>+
R>надо писать 2.0/4 или (double)2/4
R>тогда будет работать

Все ответившим спасибо
В дальнейшем буду в курсе.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.