如果我有一个字符串“5/2”,我怎么能用float.Parse来获得2.5?当我在Unity3D中执行此操作时,我收到无效格式错误。它适用于整数,就像“5”会得到5,但我正在制作一个图形计算器,很多时候线的斜率是一个分数。
答案 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]);
当然,您应该为此添加错误处理,但这是"概念验证"质量代码。