Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> if (переменная==целое число), то, help me 
:(
    Опции темы
Ronnie
Дата 22.12.2009, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 31.8.2008

Репутация: нет
Всего: нет



Подскажите, пожалуйста, как в C# реализовать следующее:
дана переменная, которая циклом на каждом шагу увеличивается на 0,1.
внутри цикла другая переменная, зависящая от первой.
как мне сделать так, чтобы тело цикла выполнялось только в том, случае, если вторая переменная - целое число? как я понимаю, нужно вложить "if", но с каким условием?

Это сообщение отредактировал(а) Ronnie - 22.12.2009, 22:32
PM MAIL   Вверх
Heinzz
Дата 22.12.2009, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



Цитата(Ronnie @  22.12.2009,  22:31 Найти цитируемый пост)
внутри цикла другая переменная, зависящая от первой.

выходит что вторая переменная с плавающей точкой, а никогда не целое. Нужно определить малое число и с его помощью определять "целое" ли число.


--------------------
user posted image
PM MAIL   Вверх
motorway
Дата 22.12.2009, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: -1
Всего: 0



Может быть, поможет следующий пример:

Код

 string a = "11";
            int number;
            bool result = Int32.TryParse(a, out number);
            
            if (result) MessageBox.Show(number.ToString());


Если точка в числе есть, то это считается не целым. Для целых чисел дает "истину".
PM MAIL   Вверх
Oxy
Дата 22.12.2009, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 70
Регистрация: 20.9.2009

Репутация: 1
Всего: 1



Код

if ((int)a == b)

PM MAIL WWW   Вверх
ZMaximI
Дата 22.12.2009, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 251
Регистрация: 18.5.2004
Где: Украина, г. Харьк ов

Репутация: нет
Всего: -1



Код

            double d = 12.00;
            if ((d - (int)d == 0))
            {
                MessageBox.Show("Дробная часть = 0, т.е. число - целое");
            }



--------------------
<удалено администрацией форума>
PM MAIL WWW ICQ   Вверх
Экскалупатор
Дата 22.12.2009, 23:03 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



))))))))))))))))))))) черт все опередили.

Добавлено через 1 минуту и 53 секунды
Oxy, самое верное!

Это сообщение отредактировал(а) Экскалупатор - 22.12.2009, 23:04
PM MAIL ICQ   Вверх
Heinzz
Дата 22.12.2009, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



Цитата(Oxy @ 22.12.2009,  23:01)
Код

if ((int)a == b)

Вы сравниваете только целую часть..


--------------------
user posted image
PM MAIL   Вверх
Экскалупатор
Дата 22.12.2009, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



Heinzz, если я не ошибаюсь, автору нужно выяснить целое ли у него число. тут это и происходит

Добавлено @ 23:08
если b будет дробным условие не выполниться

Это сообщение отредактировал(а) Экскалупатор - 22.12.2009, 23:08
PM MAIL ICQ   Вверх
Oxy
Дата 22.12.2009, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 70
Регистрация: 20.9.2009

Репутация: 1
Всего: 1



Heinzz, а что надо сравнивать?  smile 
Цитата(Ronnie @  22.12.2009,  22:31 Найти цитируемый пост)
если вторая переменная - целое число?

Код

double a = 1.1;
int b = 1;

if ((int)a == b)  {
 // вторая переменная - целое число
}

PM MAIL WWW   Вверх
Heinzz
Дата 22.12.2009, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



да, но (int)2.6 == 2


--------------------
user posted image
PM MAIL   Вверх
Oxy
Дата 22.12.2009, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 70
Регистрация: 20.9.2009

Репутация: 1
Всего: 1



или
Код

double a = 1.1;
if ((int)a == a)  {
 // переменная - целое число
}

PM MAIL WWW   Вверх
Экскалупатор
Дата 22.12.2009, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



Код

double d = 5.2;
            if (d == (int)d )
            {

            }


попробуй так. может будет понятнее

Добавлено через 47 секунд
блин, не успеваю писать...
PM MAIL ICQ   Вверх
Oxy
Дата 22.12.2009, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 70
Регистрация: 20.9.2009

Репутация: 1
Всего: 1



Цитата(Heinzz @  22.12.2009,  23:09 Найти цитируемый пост)
да, но (int)2.6 == 2 

извиняюсь, там я написал немножко не то  smile

Добавлено через 50 секунд
Цитата(Экскалупатор @  22.12.2009,  23:12 Найти цитируемый пост)
блин, не успеваю писать... 

я стараюсь smile 
PM MAIL WWW   Вверх
Heinzz
Дата 22.12.2009, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



Код

for (double i = 0; i < 5; i += 0.1)
            {
                if ((int)i==i)
                {
                    Console.WriteLine(i);
                }
            }


 smile 


--------------------
user posted image
PM MAIL   Вверх
tol05
Дата 22.12.2009, 23:26 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 63
Всего: 170



Код

for (double d = 0; d < 10; d = Math.Round(d, 1) + 0.1)
{
    if (d%1 == 0)
    {
        //цикл не выполняем
        continue;
    }
    //выполнение необходимых операций
}
если от d зависит ("как-то") другая переменная (например v) - то соответственно проверяем if (v%1 == 0)

Heinzz, сколько раз в консоли было написано i? У меня - 1 раз. 
"0.0"

)

Это сообщение отредактировал(а) tol05 - 22.12.2009, 23:27


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1317 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.