如何使用float.Parse从字符串中获取小数,如“5/2”

时间:2014-04-04 19:39:01

标签: c# string parsing unity3d

如果我有一个字符串“5/2”,我怎么能用float.Parse来获得2.5?当我在Unity3D中执行此操作时,我收到无效格式错误。它适用于整数,就像“5”会得到5,但我正在制作一个图形计算器,很多时候线的斜率是一个分数。

2 个答案:

答案 0 :(得分:6)

它不是有效数字,而是需要评估的表达式。你可以使用DataTable.Compute来做到这一点。您也可以使用此技术评估更复杂的表达式。

var result = new DataTable().Compute("5/2",null);

注意:数据表很昂贵,因此您可以创建一个实例或静态成员,其中包含DataTable的引用。

MSDN了解有关计算的更多信息。

答案 1 :(得分:5)

您需要拆分字符串,单独解析值然后进行除法。所以:

string[] tokens = input.Split('/');
float result = float.Parse(tokens[0])/float.Parse(tokens[1]);

当然,您应该为此添加错误处理,但这是"概念验证"质量代码。