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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2013, 22:41   #1
Baisad
 
Регистрация: 18.11.2013
Сообщений: 5
Вопрос 5 чисел после запятой

Плиз.Обьясните как сделать чтобы запись в файл было пять чисел
после запятой в с#

Код:
  StreamReader file = new StreamReader("input.txt");
            StreamWriter f = new StreamWriter("output.txt", false); 

            string buf;
            double a, s, p, y, r, z1, z2;

            buf = file.ReadLine();
            a = Convert.ToDouble(buf);
            file.Close(); 

            else
            {
                r = Math.Sin(a * Math.PI / 180);
                y = Math.Cos(a * Math.PI / 180);
               
                z1 = (1-1/4*Math.Pow(r,2)*(2 * a)) + Math.Cos(2 * a);
                z2 = Math.Pow(y,2) * a + Math.Pow(y,4) * a;

                Console.WriteLine(buf); 

                f.WriteLine(z1); // Записываем в файл
                f.WriteLine(z2);
                f.Close();

Последний раз редактировалось Stilet; 10.01.2014 в 22:38.
Baisad вне форума Ответить с цитированием
Старый 20.11.2013, 05:12   #2
simples
Форумчанин
 
Регистрация: 03.10.2013
Сообщений: 142
По умолчанию

Применяйте форматирование числа перед записью в файл.
Что то вроде
Код:
f.WriteLine(z1.ToString("0.00000")); // Записываем в файл
simples вне форума Ответить с цитированием
Старый 20.11.2013, 19:03   #3
Baisad
 
Регистрация: 18.11.2013
Сообщений: 5
По умолчанию

Спасибо дружище!!!
Правда это не сработало,но за участие благодарю.
Вот я нарыл может кому то понадобиться.
Math.Round(переменная, кол-во знаков);
Работает нормально.
Baisad вне форума Ответить с цитированием
Старый 04.01.2014, 20:24   #4
Baisad
 
Регистрация: 18.11.2013
Сообщений: 5
По умолчанию

Ребята не получается цикл. Вывести 4 значения функции с шагом Xd.
Например так: 2.00
3.00
4.00
-2.00
Часть кода:
static void Main(string[] args)
{
double Xn = -4, Xk = 10, dX = 2, t = 2, y;
double x = Xn;
while ( x <= Xn)
{
y = t;

if (x > -4 && x < -2)
{
y = 2 * (x + 3) + 1;
}
if (x > -2 && x < 4)
{
y = -0.5 * (x + 2) + 1;
}
if (x > 4 && x <= 6)
{
y = -2;
}
if (x > 6 && x < 10)
{
y = Math.Sqrt(6 - Math.Sqrt(x - 2));
}
Console.WriteLine( "\n|{0,6} | {1,6} |", x, y );

x += dX;// это шаг ???

Console.ReadLine();
}
Спасибо всем.
Baisad вне форума Ответить с цитированием
Старый 10.01.2014, 19:50   #5
Baisad
 
Регистрация: 18.11.2013
Сообщений: 5
По умолчанию

Все спасибо разобрался.
Baisad вне форума Ответить с цитированием
Старый 10.01.2014, 22:40   #6
alexusankov
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 66
По умолчанию

Цитата:
Сообщение от Baisad Посмотреть сообщение
понадобиться:
Math.Round(переменная, кол-во знаков);
Работает нормально.
Не хочу баламутить Ваш разум, однако 4 года назад я когда столкнулся с Вашей проблемой, и начал читать мануалы, то метод Round я отбросил в первую очередь, т.к. он производит округление, до указанного знака. И как именно он будет округлять - интересный вопрос. Зачем же Вам, сударь такая неоднозначность, пусть, и в последнем разряде? Порою, последний разряд бывает решающим, и закругляется все число.
Метод - Truncate (обрезать) - потрясающая вещь, которая не будет коверкать ваше число, и просто отбросит лишнее.
Рекомендую
P.s. навеяло танцульками с С++
P.s.s. хотя зачитав msdn я понимаю, что в C Sharp trunc может работать так же неоднозначно... Хм..
Цитата:
msnd :
Число округляется до ближайшего целого в направлении нуля.
Интересно, интересно, а в С++ оно просто отрезается...
По всей видимости, проще всего на скорую руку запиливать костыль (в строку, поиск индекса разделителя, и substring :-) )

Последний раз редактировалось alexusankov; 10.01.2014 в 22:47.
alexusankov вне форума Ответить с цитированием
Старый 11.01.2014, 14:24   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от alexusankov Посмотреть сообщение
Не хочу баламутить Ваш разум, однако 4 года назад я когда столкнулся с Вашей проблемой, и начал читать мануалы, то метод Round я отбросил в первую очередь, т.к. он производит округление, до указанного знака. И как именно он будет округлять - интересный вопрос. Зачем же Вам, сударь такая неоднозначность, пусть, и в последнем разряде? Порою, последний разряд бывает решающим, и закругляется все число.
Метод - Truncate (обрезать) - потрясающая вещь, которая не будет коверкать ваше число, и просто отбросит лишнее.
Рекомендую
P.s. навеяло танцульками с С++
P.s.s. хотя зачитав msdn я понимаю, что в C Sharp trunc может работать так же неоднозначно... Хм..

Интересно, интересно, а в С++ оно просто отрезается...
По всей видимости, проще всего на скорую руку запиливать костыль (в строку, поиск индекса разделителя, и substring :-) )
округление идет строго по правилам. так же и обрезание.
еще есть форматирование при преобразовании в строку.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.01.2014, 17:52   #8
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от simples Посмотреть сообщение
Применяйте форматирование числа перед записью в файл.
Что то вроде
Код:
f.WriteLine(z1.ToString("0.00000")); // Записываем в файл
А чтобы сработало надо писать:
Код:
f.WriteLine(z1.ToString("f5")); // Записываем в файл
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 22.01.2014, 18:49   #9
Baisad
 
Регистрация: 18.11.2013
Сообщений: 5
По умолчанию

Да прошу прощения
" f.WriteLine(z1.ToString("f5"));"
работает. Только разницы между Round не заметил.
Впрочем я мало в этом еще разбираюсь только начал вникать.
Кстати что это "мануалы" если можно ссылку где почитать буду признателен.
Всем спасибо.
Baisad вне форума Ответить с цитированием
Старый 23.01.2014, 08:10   #10
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от Baisad Посмотреть сообщение
можно ссылку где почитать
MSDN всему голова.
Мануал.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление после запятой webpusher Microsoft Office Excel 1 26.06.2012 19:57
Разделение чисел на до запятой и после запятой msser Microsoft Office Excel 8 23.10.2009 11:57
2-а знака после запятой vitamin.rulez Помощь студентам 7 22.05.2009 16:02
знаки после запятой RiF Помощь студентам 10 16.12.2008 20:04
Сокращение после запятой Romuald Microsoft Office Excel 21 18.12.2007 10:32