Удалите 0s из конца десятичного значения [дубликат]

15
задан bluish 22 October 2013 в 12:06
поделиться

4 ответа

string.Format("{0:0.#####}", 0.0030)

или

var money=1.3000m;
money.ToString("0.#####");

Для дальнейшего использования я рекомендую стандартную ссылку .NET FORMATH от John Shehan.

20
ответ дан 1 December 2019 в 00:04
поделиться
decimal value = 0.0030m;
value.ToString(“G29″);

Отредактируйте: gifter divatter работает, единственная проблема заключается в том, что она переходит к научной обозначении, если в исходном десятичном десятичном десятином случае есть слишком много значков. Не так идеал.

См. Документация «Генеральный (« G ») Документация« Формат »: http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx#gformatstring

Я нахожусь Обед, поэтому я проделал немного теста:

decimal d1 = 0.000100m;
decimal d2 = 0.001000000000000000000000m;
decimal d3 = 0.000000000000001000000000m;

Console.WriteLine(Environment.NewLine + "input decimal: 0.000100m");
Console.WriteLine("G         " + d1.ToString("G"));
Console.WriteLine("G29       " + d1.ToString("G29"));
Console.WriteLine("0.####### " + d1.ToString("0.#######"));

Console.WriteLine(Environment.NewLine + "input decimal: 0.001000000000000000000000m");
Console.WriteLine("G         " + d2.ToString("G"));
Console.WriteLine("G29       " + d2.ToString("G29"));
Console.WriteLine("0.####### " + d2.ToString("0.#######"));

Console.WriteLine(Environment.NewLine + "input decimal: 0.000000000000001000000000m");
Console.WriteLine("G         " + d3.ToString("G"));
Console.WriteLine("G29       " + d3.ToString("G29"));
Console.WriteLine("0.####### " + d3.ToString("0.#######"));

вывод:

input decimal: 0.000100m
G         0.000100
G29       0.0001
0.####### 0.0001

input decimal: 0.001000000000000000000000m
G         0.001000000000000000000000
G29       0.001
0.####### 0.001

input decimal: 0.000000000000001000000000m
G         0.000000000000001000000000
G29       1E-15
0.####### 0
9
ответ дан 1 December 2019 в 00:04
поделиться
decimal m = 0.030000m;
Console.Write(m.ToString("0.##########"));

Просто убедитесь, что у вас достаточно #s для количества десятичных мест, которые вы хотите отобразить

2
ответ дан 1 December 2019 в 00:04
поделиться

HMM, это проблема форматирования дисплея (добавляются Zeros, когда вы преобразуете десятичную строку).

Вам нужно увидеть, где в коде вы видите конечные нули. Это после звонка к .tostring ()? Попробуйте играть с различными струнами форматирования:

.ToString("#");
.ToString("0.00");
.ToString("#.##");

и так далее. Лучший способ сделать это просто для эксперимента с различными возможными значениями.

3
ответ дан 1 December 2019 в 00:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: