запутался с форматами
От: nikkit  
Дата: 15.10.21 09:08
Оценка:
требуется число (decimal для конкретики) вывести в формате
(целая часть или 0, в случае нуля).(дробная часть полностью или 0 если отсутствует)
Re: запутался с форматами
От: Mihas  
Дата: 15.10.21 11:09
Оценка:
Здравствуйте, nikkit, Вы писали:

N>требуется число (decimal для конкретики) вывести в формате

N>(целая часть или 0, в случае нуля).(дробная часть полностью или 0 если отсутствует)
Копай в сторону
ToString("0.##")
Re: запутался с форматами
От: VladCore  
Дата: 15.10.21 15:51
Оценка: -1
Здравствуйте, nikkit, Вы писали:

N>требуется число (decimal для конкретики) вывести в формате

N>(целая часть или 0, в случае нуля).(дробная часть полностью или 0 если отсутствует)

это где такая красота нужна если не секрет?

0 в целой части ToString и так выводит для decimal
а вот в дробной части decimal хранит количество значащий нулей
их надо самому обрезать/дописывать или в decimal или в строке

using System;
                    
public class Program
{
    public static void Main()
    {
        foreach(decimal a in new[] { 0, 0.0m, 0.000m, 0.456000m})
            Console.WriteLine(a.ToString());
    }
}

0
0.0
0.000
0.456000
Отредактировано 15.10.2021 15:54 VladCore . Предыдущая версия . Еще …
Отредактировано 15.10.2021 15:53 VladCore . Предыдущая версия .
Re: запутался с форматами
От: Vladek Россия Github
Дата: 16.10.21 11:34
Оценка:
Здравствуйте, nikkit, Вы писали:

N>требуется число (decimal для конкретики) вывести в формате

N>(целая часть или 0, в случае нуля).(дробная часть полностью или 0 если отсутствует)

У меня в классе денег такой код в конце концов прижился:
    var hasFraction = Math.Abs(sum % 1m) != 0m;
    var sumWriting = sum.ToString(hasFraction ? "N2" : "N0", this.culture);
Re: запутался с форматами
От: _FRED_ Черногория
Дата: 18.10.21 09:32
Оценка: +1
Здравствуйте, nikkit, Вы писали:

N>требуется число (decimal для конкретики) вывести в формате

N>(целая часть или 0, в случае нуля).(дробная часть полностью или 0 если отсутствует)

SharpLab:
using System;

var values = new[] {
  0m,
  0.1m,
  0.123456789m,
  0.012345678901234567890123456789m,
  -12.123456789m,
  -13m,
  123456789.987654321m,
};

foreach(var item in values) {
  Console.WriteLine(item.ToString("0.0###########################"));
}

Custom numeric format strings
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.