2010-12-06 244 views
4

我有一个空的浮点数。内部小数位可以用点或逗号分隔,例如1.2或1,2。我需要这个浮点数作为一个字符串来比较它与正则表达式。如果我使用Convert.toString方法,则逗号为12的浮点数不是1.2。如何将float转换为String而不会丢失逗号或点?我试图用不同的文化来转换它。将浮点数转换为逗号和点的字符串

感谢您的帮助

+0

和1.200,00应该被解析为? – SWeko 2010-12-06 13:35:58

+0

为什么1,2应该是12? – VVS 2010-12-06 13:39:33

+0

float是一个百分比,所以它只能取值从0,00到100,00或0.00到100.00 – holzleube 2010-12-06 13:53:53

回答

0

带掩码的String.Format()函数。但是,为了比较的目的,你可以将字符串转换为数字而不是数字吗?它是否必须是正则表达式比较?

-1

尝试:

string s = yourFloat.ToString(); 

使用固定区域性的建议,如果你想确保你的输出将是正确的形式,但我会感到惊讶,如果有一个文化,不输出逗号一个点。

我也建议而不是使用正则表达式来验证浮动值。

0

您确定该文本框允许“。”和“,”作为小数分隔符(与分组字符相对,也称为千位分隔符)?

如果您确定只能得到小数点分隔符并且没有分组字符,请用“。”替换任何“,”。在使用带有InvariantCulture的TryParse将字符串转换为浮点数据之前。
或者在代码中使用与客户端相同的文化,因此两者都使用相同的小数点分隔符。

正如其他人提到的,float没有各种小数点分隔符的概念。

0

如果它是WinForm应用程序,则有一个静态变量Application.CurrentCulture.NumberFormat.NumberDecimalSeparator

根据它的值,在转换ToString()时会得到不同的结果。 尝试操作此参数以获得必要的结果。

0

好的我解决了这个问题。我在我的xaml中做了一个转换器,它只允许用逗号作为分隔符输入值,所以如果只有两个内部小数位,我不需要任何检查。感谢您的帮助

相关问题