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

Tre*_*e B 3 c# string parsing unity-game-engine

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

Sri*_*vel 6

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

var result = new DataTable().Compute("5/2",null);
Run Code Online (Sandbox Code Playgroud)

注意:数据表很昂贵,因此您可以创建一个实例或静态成员来保存您的引用DataTable.

阅读有关MSDN中计算的更多信息.


eva*_*nal 5

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

string[] tokens = input.Split('/');
float result = float.Parse(tokens[0])/float.Parse(tokens[1]);
Run Code Online (Sandbox Code Playgroud)

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