Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2014, 13:37   #1
МаксМСК
 
Регистрация: 26.09.2014
Сообщений: 3
По умолчанию некорректный подсчет

при вычислении дробных выражений получается некорректный ответ, например: 212,2-212=0,199999999999989. в чем причина?
Код:
 double a, b, c;
        char znak = '+';
 
private void button6_Click(object sender, EventArgs e)
        {
            a = Convert.ToDouble(textBox1.Text);
            b = Convert.ToDouble(textBox2.Text);
            switch(znak)
            {
                case '+':c = a + b;
                    break;
                case '-': c = a - b;
                    break;
                case 'Ч': c = a * b;
                    break;
                case '/': c = a / b;
                    break;
            }
            textBox1.Text = Convert.ToString(c);
        }
МаксМСК вне форума Ответить с цитированием
Старый 26.09.2014, 13:59   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Правильный ответ вообще-то.
Просто его отформатировать надо.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.09.2014, 14:38   #3
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Причина в незнании особенностей хранения чисел с плавающей точкой. Решение - вывод отформатированного числа с 2 знаками после запятой. c.ToString и формат числа N2, например.
pu4koff вне форума Ответить с цитированием
Старый 26.09.2014, 15:32   #4
qwaker
Пользователь
 
Регистрация: 23.12.2010
Сообщений: 25
По умолчанию

Код:
double k = 212.2-212;
          Console.WriteLine("{0:F}", k);
например
qwaker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некорректный шаблон dragon666999 HTML и CSS 8 05.02.2013 16:07
Некорректный выход из прерывания 09h корица Помощь студентам 0 07.05.2012 19:51
Некорректный вывод результата (1,#J) Drozd Oleg Общие вопросы C/C++ 3 25.09.2011 12:31
Некорректный перенос символов Елена Гох Microsoft Office Word 9 27.12.2010 00:31
Некорректный вывод изображения Манжосов Денис :) Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 24.07.2010 00:12