Tre*_*e B 3 c# string parsing unity-game-engine
如果我有一个字符串"5/2",我怎么能用float.Parse得2.5?当我在Unity3D中执行此操作时,我收到无效格式错误.它适用于整数,就像"5"会得到5,但我正在制作一个图形计算器,很多时候线的斜率是一个分数.
它不是有效数字,而是需要评估的表达式.你可以使用DataTable.Compute.您也可以使用此技术评估更复杂的表达式.
var result = new DataTable().Compute("5/2",null);
Run Code Online (Sandbox Code Playgroud)
注意:数据表很昂贵,因此您可以创建一个实例或静态成员来保存您的引用DataTable.
阅读有关MSDN中计算的更多信息.
您需要拆分字符串,单独解析值,然后进行除法.所以:
string[] tokens = input.Split('/');
float result = float.Parse(tokens[0])/float.Parse(tokens[1]);
Run Code Online (Sandbox Code Playgroud)
当然,您应该为此添加错误处理,但这是"概念证明"质量代码.