Как и другие комментарии и ответы, у вас есть некоторые основы для понимания в первую очередь. Может быть, я говорил некоторые вещи, которые вы уже знаете, но иметь со мной:
- Ваш
textBox7.Text
содержит string
, не decimal
.
- Если вы хотите
decimal
для расчетов, вы должны преобразовать его (я думаю, что вы уже получили это далеки)
- Поскольку
res
десятичной всякий раз, когда вы хотите посмотреть на его значение НЕЧТО преобразует его в string
. Будь то вы пишете его до Console
или вашего отладчика, когда вы наводите на него курсор. Это преобразование будет использовать ваши текущие региональные настройки. Это, поэтому вы всегда видите запятую.
- Чтобы показать его кому-то еще или написать где-нибудь в формате, который вы хотите, вам нужно указать формат или CultureInfo.
a) Standard Format. Пример:
Console.WriteLine(res.toString("F2"));
Это формат 123456 с 2 номера после запятой: 123456,00
б) Custom Format. Пример:
Console.WriteLine(res.toString("[##-##-##]"));
Это выведет 123456 на что-то вроде [12-34-56]
с) CultureInfo. Пример:
Console.WriteLine(res.ToString(CultureInfo.CreateSpecificCulture("nl-BE")));
Это будет выводить 1234,56, как в Бельгии: с запятой 1234,56
Кстати, я думаю ан-ГБ также выводит к запятой :-)
г) Combine. Сходить с ума! Сделайте оба! Пример:
Console.WriteLine(res.ToString("F2", CultureInfo.CreateSpecificCulture("nl-BE")));
формат 123456 до 123456,00!
'res' является' десятичным', а не строкой. Поэтому он не может иметь формат. – CodesInChaos
Что означает '0: 0.0' даже для« десятичного »? В чем смысл ':'? – Oded
@Oded Я думаю, что это означает '0'th параметр в' string.Format'. – CodesInChaos