| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > if (переменная==целое число), то |
| Автор: Ronnie 22.12.2009, 22:31 |
| Подскажите, пожалуйста, как в C# реализовать следующее: дана переменная, которая циклом на каждом шагу увеличивается на 0,1. внутри цикла другая переменная, зависящая от первой. как мне сделать так, чтобы тело цикла выполнялось только в том, случае, если вторая переменная - целое число? как я понимаю, нужно вложить "if", но с каким условием? |
| Автор: Heinzz 22.12.2009, 22:54 |
выходит что вторая переменная с плавающей точкой, а никогда не целое. Нужно определить малое число и с его помощью определять "целое" ли число. |
| Автор: motorway 22.12.2009, 22:56 | ||
Может быть, поможет следующий пример:
Если точка в числе есть, то это считается не целым. Для целых чисел дает "истину". |
| Автор: Oxy 22.12.2009, 23:01 | ||
|
| Автор: ZMaximI 22.12.2009, 23:02 | ||
|
| Автор: Экскалупатор 22.12.2009, 23:03 |
| ))))))))))))))))))))) черт все опередили. Добавлено через 1 минуту и 53 секунды Oxy, самое верное! |
| Автор: Heinzz 22.12.2009, 23:05 | ||||
Вы сравниваете только целую часть.. |
| Автор: Экскалупатор 22.12.2009, 23:08 |
| Heinzz, если я не ошибаюсь, автору нужно выяснить целое ли у него число. тут это и происходит Добавлено @ 23:08 если b будет дробным условие не выполниться |
| Автор: Oxy 22.12.2009, 23:08 | ||
Heinzz, а что надо сравнивать?
|
| Автор: Heinzz 22.12.2009, 23:09 |
| да, но (int)2.6 == 2 |
| Автор: Oxy 22.12.2009, 23:11 | ||
или
|
| Автор: Экскалупатор 22.12.2009, 23:12 | ||
попробуй так. может будет понятнее Добавлено через 47 секунд блин, не успеваю писать... |
| Автор: Oxy 22.12.2009, 23:15 |
извиняюсь, там я написал немножко не то Добавлено через 50 секунд я стараюсь |
| Автор: Heinzz 22.12.2009, 23:17 | ||
|
| Автор: tol05 22.12.2009, 23:26 | ||
Heinzz, сколько раз в консоли было написано i? У меня - 1 раз. "0.0" ) |
| Автор: Oxy 22.12.2009, 23:34 | ||
ещё вариант |
| Автор: tol05 22.12.2009, 23:43 |
| почему никто кроме меня не обрабатывает ошибки округления? )) +0.1 практически через раз дает 0.99999999997 или 3.99999999989 и т.п. |