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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Округление, Округление 
:(
    Опции темы
franken
  Дата 19.3.2011, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый Вечер Программисты.
Подскажите пожалуйста почему в первом варианте не округляет до целого числа,а во втором случае округляет,и как мне исправить 1 случай чтобы округляло.

[CSHARP]
1 случай
 double pk,z=4;
 pk = z / 3;
 Math.Round(pk);
 Console.WriteLine(pk);
//ответ
//1.3333333333333333
[/CSHARP]


[CSHARP]
2 случай
 double pk;
 pk = 4 / 3;
 Math.Round(pk);
 Console.WriteLine(pk);
//ответ
//1
[/CSHARP]

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


Шустрый
*


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

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



Округление в обоих случаях не работает, т.к. ты результат Math.Round(pk); никуда не записываешь

Во втором случае у тебя результат 1, т.к. делитель и делимое типа int, поэтому результат - int, который уже после - кастуется в double pk.
PM MAIL   Вверх
jonie
Дата 20.3.2011, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



да и вообще по умолчанию Math.Round производит банковскоек ближайшему четному округление, а не математическое... однако, у метода есть перегрузка, позволяющая изменить это поведение.

Это сообщение отредактировал(а) jonie - 20.3.2011, 10:46


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
franken
Дата 20.3.2011, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я уже нашёл ответ)

Код

pk = Math.Round(pk);


всё работает и так как хотелось)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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