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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему в С# эдак, а в VB.NET нормально? 
V
    Опции темы
thomas
Дата 21.3.2008, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

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



Приветствую.
Вот заучился до ручки.  smile  

В общем подскажите студенту,
почему в VB.NET 
Код

dim res as decimal = 130/100

результат 1,3
а такой же код на C#
Код

decimal res = 130/100;

выдает 1?

где грабли?  smile 


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
creatorcode
Дата 21.3.2008, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Потому, что вы делите целые числа. Попробуйте так:
Код

decimal res = 130.m/100;

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


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

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



creatorcode
Приветствую.
И в чём "фишка"?  smile 
И как мне теперь эту "m" прикрутить сюды
Код

public decimal VerkoopPrijs
            {
                get
                {
                    return _verkoopPrijs = decimal.Round((_huidigePrijs * ((100 + _winst) / 100)), 2);
                }
            }


Это сообщение отредактировал(а) thomas - 21.3.2008, 01:11


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
rubbiroid
Дата 21.3.2008, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Можно еще вот так
Код

return _verkoopPrijs = decimal.Round((_huidigePrijs * ((float)(100 + _winst) / 100)), 2);


Это сообщение отредактировал(а) rubbiroid - 21.3.2008, 13:01
PM MAIL   Вверх
source777
Дата 21.3.2008, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(thomas @  21.3.2008,  01:09 Найти цитируемый пост)
И в чём "фишка"?  smile 
Фишка в С++, если оба операнда целочисленные, то и деление целочисленное:
130/100 = 1
130%100 = 30




--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
creatorcode
Дата 21.3.2008, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



"m" - суффикс для литералов типа decimal
Прикрутить можно, например, так:
Код

return _verkoopPrijs = decimal.Round((_huidigePrijs * ((100 + _winst) / 100.0m)), 2);


Это сообщение отредактировал(а) creatorcode - 21.3.2008, 14:35
PM MAIL   Вверх
thomas
Дата 21.3.2008, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

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



сделал так
Код

return _verkoopPrijs = decimal.Round((_huidigePrijs * ((decimal)(100 + _winst) / 100)), 2);


rubbiroid,  smile 


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
vponomarov
Дата 22.3.2008, 00:26 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



явное приведение типов рулит smile 


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
archimed7592
Дата 24.3.2008, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

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



Цитата(creatorcode @  21.3.2008,  00:49 Найти цитируемый пост)
130.m

Зачем и точка и суффикс? Точка говорит, что литерал будет double, суффикс - decimal. Ессно суффикс будет иметь предпочтение, но всё равно точка здесь как-то не к месту smile.


Цитата(vponomarov @  22.3.2008,  00:26 Найти цитируемый пост)
явное приведение типов рулит smile  

А по моему "рулят" суффиксы. Литерал есть литерал - зачем его ещё приводить куда-то.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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