[Homework] C# Basics - Console Input/Output - Problem {5} - Formatting Numbers
Здравейте,
Ето моето решенмие на задачата, проблема идва от там, че при отпечатването на "b" или аз не мога да го направя или е допусната малка неточност в отговорите.
трябва да се получат следните резултати:
a | b | c | result |
254 | 11.6 | 0.5 | |FE |0011111110| 11.60|0.500 | |
499 | -0.5559 | 10000 | |1F3 |0111110011| -0.56|10000 | |
0 | 3 | -0.1234 | |0 |0000000000| 3|-0.123 | |
При отпечатване на резултата мястото (placeholder-а) за "b", съм го форматирал по следния начин {5,10:#.##}, което работи коректно само за 3-тия случай когато b = 3, когато b = 11.6, показва 11.6 (а не 11.60), а при b = -0.5559, показва "-.56". Някой от вас ще ми каже "Що не го форматираш така: {5,-10:0.00} или {5,-10:F2}", но и при двата случая работи коректно за 1-вия и втория пример, но при b = 3 покава 3.00, а не 3. От тук си мисля, че автора на задачата или е пропуснал в резултата ".00" след 3-ката или при 11.6 е сложил нулата по инерция. Естествено, че аз съм пълен лаик във форматирането и може да има и трети вариант и затова пускам тази тема :).
StanDimitroff , не ти работи коректно виж добре резултатите при третия пример , когато b = 3. Дава ти "3.00", а в условието е посочено, че трябва да ти дава "3".
Освен това ако позволиш един два съвета: в Console.Write("{0,-10:x}",intA); може да замениш "х" с "Х" за да ти изписва с главни букви, числото в 16-тична бройна система (както е в примера). Така както си го направил ти пропускаш, че в резултата има и вертикални черти, които разделят резултатите за а, b, и с един от друг. :), Но иначе основната идея си я схванал според мен.
В условието пише, че "b" и "c" трябва да са floating-point numbers, което значи, че автоматично ще ти се добавя ".00"(разбира се, ако ги парсваш към floating-point променлива). Аз лично си мисля за един вариант: Можеш да провериш дали въведеното число е цяло и, ако е такова, да го превърнеш в целочислено и след това да го принтираш :? не знам дали ще стане. Все пак си мисля, че има допусната грешка в условието :)