Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Atanasov_88 avatar Atanasov_88 39 Точки

Console Input/Output problem 5 Formatting Numbers

Здравейте, колеги, имам малък проблем с петата задача. Бих искал да ви попитам как точно правите така, че числото в двуична бройна система да застане след това в шестнадесетична. Защото на мен ми излиза само в края чрез следното решение: 

using System;

class FormattingNumbers
{
    static void Main()
    {
        Console.WriteLine("Number A: ");
        int a = int.Parse(Console.ReadLine());
        Console.WriteLine("Number B: ");
        double b = double.Parse(Console.ReadLine());
        Console.WriteLine("Number C: ");
        double c = double.Parse(Console.ReadLine());
        Console.WriteLine("Result = |{0,-10:X} |{1,10:F2} | {2,-10:F3}", a, b, c + " | " + Convert.ToString(a, 2).PadLeft(10, '0'));
            
              
    }
}

Предварително Благодаря :)

Тагове:
0
Programming Basics
aababy avatar aababy 14 Точки

Hi,

Не Ви ли се струва странно следното:

в условието на Задача 5 е посочено, че:

1. второто число трябва да е с 2 цифри след десетичната точка

2. третото число трябва да е с 3 цифри след десетичната точка

във втория пример третото число е целочислено

в третия пример второто число е целочислено

в резултата и двете са представени като цели числа!

0
Manoela avatar Manoela 7 Точки

Здрасти, 

според мен е направено така, понеже целите числа няма смисъл да се пишат с десетична запетая и 0 и идеята е да ползваш проверка дали числото е цяло и ако е, да не слагаш 0 отзад.

 

0
IvanAndonov avatar IvanAndonov 5 Точки

Hi,

И на мен това ми направи впечатление - в горният случай ми излиза output 3.00, което не е точно 3, както е в примера :). Може би имам някаква грешка в кода?

using System;

class FormatingNumbers
{
    static void Main()
    {
        Console.Write("Enter a: ");
        int a = int.Parse(Console.ReadLine());

        Console.Write("Enter b: ");
        float b = float.Parse(Console.ReadLine());

        Console.Write("Enter c: ");
        float c = float.Parse(Console.ReadLine());

        string d = Convert.ToString((int)a, 2);

        if (a >= 0 && a <= 500)
        {
            Console.WriteLine("|{0,-10:X}|{1,10}|{2,10:F2}|{3,-10:F3}|", a, d.PadLeft(10, '0'), b, c);
        }
        else
        {
            Console.WriteLine(" \"a\" should be an integer between 0 and 500");
        }
    }
}

 

0
A.Malinov avatar A.Malinov 11 Точки

Здравей, колега.

Пробвай вместо с F2 и F3 за второто и третото число това : {2,10:0.##}|{3,-10:0.000}. Така при мен всичко излиза както е в примера.

Поздрави.

0
IvanAndonov avatar IvanAndonov 5 Точки

Много благодаря :)

0
Manoela avatar Manoela 7 Точки

Като ползвам {2,10:0.##}, на първия пример, където второто число е 11,6, резултата излиза 11,6, а не 11,60 както е зададено. # не добавя нули за да запълни броя цифри след десетичната запетая, което за целите числа върши работа, но при 11,60 не става. Единствено с проверките дали b == (int)b   и  c == (int)c успявам да получа резултатите от примера.

1
A.Malinov avatar A.Malinov 11 Точки

В условието наистина пише да се представят с 2 и 3 цифри след десетичната точка, но в примера при 11,6 и 3 няма нули и за това ползвах "#". Може и да съм се подвел :)

1
djc_bg2015 avatar djc_bg2015 923 Точки

Абсолютно си прав, в примера се вижда че нули след 3 няма - значи трябва да се ползва 0.## 0.### ,
но пък това води до проблема за който говори Manoela.

0
05/06/2015 16:29:13
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.