C# 将包含 float 的字符串转换为整数

标签 c# parsing floating-point int

例如,将可以为空或包含“1.2”的字符串转换为整数的最佳方法是什么? int.TryParse 当然会失败,我不想使用 float.TryParse 然后转换为 int

最佳答案

解决方案 1:Convert.ToDouble(文化相关)

您可以使用 Convert.ToDouble。但是,当心!仅当当前区域性设置中的数字分隔符是句点字符时,以下解决方案才有效。

var a = (int)Convert.ToDouble("1.2");    

解决方案 2:Convert.ToDouble(文化无关)

最好使用IFormatProvider并以独立于当前文化设置的方式转换数字:

var a = (int)Convert.ToDouble("1.2", CultureInfo.InvariantCulture.NumberFormat); 

解决方案 3:解析和拆分

完成此任务的另一种方法是对已解析的字符串使用拆分:

var a = int.Parse("1.2".Split('.')[0]);

或者:

var a = int.Parse("1.2".Split('.').First());

注意事项

关于C# 将包含 float 的字符串转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3395381/

相关文章:

java - 改进解析文本文件的代码

swift - 处理具有浮点值的整数的最佳实践?

JavaScript 似乎做错了 float (与 C 相比)

c# - 对于路由代码中指定的 Controller /方法来说,使用 "specifications"是不是很糟糕?

c# - 如何测试 SQL Server 中的存储过程错误

c# - Jquery Accordion : How do I get rid of these scroll bars for good?

c# - 使用 Fluent 验证的 Model T 的通用验证器?

xml - 当根节点有命名空间声明时 GXT 和 AutoBeans 可以处理 XML 吗?

parsing - 为什么最多向前查看 1 个输入标记?

Python小数