Софтуерно Инженерство
Loading...
Maria.P avatar Maria.P 0 Точки

Проблеми с данни от тип double и изкарването им на конзолата във вид 0.00

Здравейте,

Имам следния проблем: първо се опитах като използвах "{0:F2}", после  използвах   и String.Format("{0:0.00}", променливата);  и работи за числа, имащи повече от 2 цифри след запетаята, но не ми изкарва цяло число като цяло число. 00, тоест 25 ми го изписва на конзолата като 25, а не като 25.00. Как мога да си изкарам на конзолата всички числа във вида 0.00?

 

Тагове:
0
Programming Basics 02/02/2019 16:11:55
VasilKotsev avatar VasilKotsev 804 Точки
Best Answer

Math.Round() ще закръгли числото до най-близкото цяло такова или AwayFromZero/ToEven ако се използва MidpointRounding. Повечето задачи изискват само числото да се изкара в посочен формат(най-често две цифри след запетаята) освен ако не става ясно от условието, че трябва да се закръгли иначе тогава използването на Round() ще доведе до отклонения в очаквания резултат.

Най-вероятно принтираш нещо грешно, дай някакъв примерен код ? string.Format() връща вече форматиран низ, а "F2" e fixed point format, който можеш да ползваш в интерполиран низ.

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

Ето пример как може да стане форматирането:

string firstNumber = string.Format("{0:0.00}", 25);
string secondNumber = $"{25:F2}";
string thirdNumber = 25.ToString("0.00");

 

0
02/02/2019 16:54:45