Jonas Kessinger Ответов: 3

Удалить запятую из текстового поля


Здравствуйте, у меня возникли некоторые трудности с удалением запятой из текстового поля.
Текстовое поле получает значение (1250), но мне нужно, чтобы оно показывало (1250) вместо этого.

textBoxResult.Text = value1.ToString();


Есть идеи?


Большое спасибо.

Что я уже пробовал:

Попытался воспользоваться
textBoxResult.Text = value1.ToString("N0");

3 Ответов

Рейтинг:
15

#realJSOP

textBoxResult.Text = textBoxResult.Text.Replace(",","");


Jonas Kessinger

Сработало отлично, большое спасибо!

Maciej Los

Но это касается ваших реальных проблем...
Смотрите, решение № 3.

#realJSOP

Как это покрывает его реальные проблемы?

Maciej Los

Ну, самый короткий способ объяснить это-использовать пример...

var myvalue = 1000.50;

//defult regional settings
//"En-us"
Console.WriteLine(myvalue.ToString("F1").Replace(",", ""));
//result: 1000.5

CultureInfo prs = new CultureInfo("Pl-pl");
//Polish regional stettings
Console.WriteLine(myvalue.ToString("F1", prs).Replace(",", ""));
//result: 10005


Вывод?

Ваше здоровье!
Мацей

#realJSOP

Его "настоящей проблемой" было удаление запятой из строки. Его вопрос не упоминал и не подразумевал желания сделать его культурно специфичным. Его примером был переход от "1250" к "1250". Мое решение-это именно то, о чем он просил, и он отметил его как "ответ".

Maciej Los

Вызвали к доске...
Честно говоря, если решение помечается спрашивающим как ответ, это еще не доказывает, что оно вообще решает проблему.
Я пытался объяснить (на примере), что удаление запятой при преобразовании числа 1250 в строку-это правильный способ решить проблему в его ОС. Когда его программа будет использоваться на машине с различными региональными настройками, предоставленный вами метод станет причиной нескольких проблем.

Не поймите меня неправильно. Я не собираюсь вступать с тобой в словесную перепалку.

Овации,
Мацей

Рейтинг:
0

Maciej Los

Пожалуйста, прочтите это:
Пользовательский числовой формат строк | Майкрософт документы[^]
Строки стандартного числового формата | Microsoft Docs[^]

Вы должны понимать, что отображение чисел в определенном формате зависит от региональных настроек!

double dblValue = -12445.6789;
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture));
// Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1",
                  CultureInfo.CreateSpecificCulture("sv-SE")));
// Displays -12 445,7


Рейтинг:
0

phil.o

Попробуй

textBoxResult.Text = value1.ToString("F0");


Maciej Los

Привет!
Пожалуйста, смотрите мои комментарии к решению № 1.

Овации,
Мацей

phil.o

Я полностью согласен с вами в этом Мацей; не зная, какую культуру на самом деле использует ОП, я просто предположил инвариантную культуру, для которой плавающий формат не имеет никакого разделителя тысяч.