在负数上使用格式字符串时,AutoValidate出现问题

本文关键字:AutoValidate 问题 字符串 格式 | 更新日期: 2023-09-27 18:06:58

我有一个格式字符串"#########0.00"。它适用于正数。但当我得到负数(例如-23.6(时,我会返回"-23.60"。这会导致TextBox上的AutoValidate出现问题。我需要删除减号和数字之间的三个空格(数字之间的空格对验证器来说没有问题(。我必须使用哪种格式字符串来保留正数的格式,但删除负数中减号和数字之间的空格?例如,如果我得到-1234567,那么它会给我-1 234 567.00?我正在使用。NET 2.0

在负数上使用格式字符串时,AutoValidate出现问题

你能考虑在字符串格式中使用逗号而不是空格吗:

String.Format("###,###,###,##0.00", -23.60);   

而不是

String.Format("### ### ### ##0.00", -23.60);   

编辑以处理捷克文化信息

CultureInfo culture = CultureInfo.CreateSpecificCulture("cs-CZ");
String.Format("###,###,###,##0.00", -23.60, culture);   // outputs: -23,60
String.Format("###,###,###,##0.00", -123.60, culture);   // outputs: -123,60
String.Format("###,###,###,##0.00", -23.60, culture);   // outputs: -1 23,60

试试这个:

Val(TextBox1.Text).ToString("#,#").Replace(",", " ")