У меня есть следующий код:
double f = (1500 / 3000); MessageBox.Show(string.Format("{0:F2}",f));
Я ожидаю получить 0.50 в качестве результата, но я получу 0.00. Что я делаю неправильно? Пожалуйста, помогите мне понять, как работает форматирование.
0.50
0.00
Это целочисленное деление.Как минимум одно из ваших значений должно быть двойным (нецелым).
1500 / 3000 = 0 1500 / 3000.0 = 0.50
Вы делите целые числа.
Изменить на
double f = (Convert.ToDouble(1500)/Convert.ToDouble(300); MessageBox.Show(string.Format("{0:F2}",f));
попробуй double f = (1500.0 / 3000.0);?
double f = (1500.0 / 3000.0);
Проблема здесь в том, что значение double установлено на 0. Вы делаете целочисленное деление, которое обрезает результат до 0, а затем присваивает его двойному. Вам нужно перейти на деление с плавающей запятой
double
0
double f = (1500d / 3000);
Вы должны использовать
double f = (1500d / 3000d);
Если вы не используете "d", числа должны быть целыми, поэтому 1500/3000 равно нулю! Почти одно из чисел, которые выиспользование должно быть удвоено или приведено к удвоению перед делением.