2016-07-16 81 views
-1

C#:将用户输入字符串“Pi”转换为Double Math.PI

弧度和度之间的转换,7个裨弧度= 1260度

用户输入为弧度。

试图将用户输入字符串“Pi”转换为Math.Pi来计算。

+0

你可以发布相关的代码示例吗?如果我理解正确,你可以使用'const decimal pi = 3.14159;'或'var pi = Math.Pi;' – Ash

+0

来设置一个常量pi。因此,如果用户想要90°,实际上输入“0.5 Pi”? – derpirscher

+0

@derpirscher是 –

回答

0

这取决于你允许用户输入。

如果它只是像0.5 Pi3 Pi,你要为它的实际价值,你可以简单地从输入字符串中删除了Pi部分,分析余下的字符串转换成数量和乘以Math.PI

Regex pi = new Regex(@"\s*pi\s*", RegexOptions.IgnoreCase); 
var v = pi.Replace(input, ""); 
double d = Convert.ToDouble(v); 
double rad = d * Math.Pi; 

如果您有更复杂的输入,如3/4 Pi或更复杂的公式,则需要某种公式解释器。他们中的许多人将能够处理像Pi这样的常量。

0

编辑:

看起来你需要剥离出来的字符串,然后用一个公式。

喜欢的东西:

const string pi = "pi"; 
var input = "7pi"; 
var containsPi = (input.IndexOf(pi) > -1) 
var inputDecimal = Convert.ToDecimal(input.Replace(input, pi, "")); 
if (containsPi) inputDecimal = inputDecimal * Math.Pi; 
var resultInDegreees = inputDecimal * 180.0/Math.Pi; 
相关问题