在Visual Studio中使用.NET framework6的项目中,如果可能的话,我需要将用户字符串转换为int。
TryParse是最有效的,因为它不会抛出异常,而是在无法转换时返回false。
但是我遇到了一个问题。int.TryParse方法在小数点为0的值上返回false,如22.0、24.00
我在https://learn.microsoft.com/tr-tr/dotnet/api/system.int32.tryparse?view=net-7.0上发现了int.TryParse(int.TryParse(字符串、数字样式、IFormatProvider、Int32)重载
我使用的是.NET框架6.0
string numberString = "5.0";
bool valid = int.TryParse(numberString,NumberStyles.AllowDecimalPoint,CultureInfo.CurrentCulture, out int result);
在这个代码中valid为False。在我提供的链接中,.NET framework 6.0没有列在函数的versions部分下。这就是valid为False的原因吗?我是不是漏掉了什么?
这是没有意义的。为什么我需要写自己的函数来检查一个数字是否有0作为十进制数呢?有没有其他方法可以在.NET framework6上实现这一点?
综上所述,如何在c# .NET framwork 6中检查字符串是否有int数值,包括0个十进制数字值如22.0为True
1条答案
按热度按时间dgiusagp1#
您的代码是正确的,但我怀疑您当前的区域性使用句点(
.
)以外的其他字符作为小数点分隔符。根据您到MSDN的链接,您可能在土耳其,在这种情况下,小数点分隔符是逗号(,
)。下面的例子应该可以帮助您找出在您的用例中最好做什么。