Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将字符串转换为浮点值?_C#_.net_Windows Phone 7 - Fatal编程技术网

C# 如何将字符串转换为浮点值?

C# 如何将字符串转换为浮点值?,c#,.net,windows-phone-7,C#,.net,Windows Phone 7,我想将高度值转换为浮点值。最终值为3英尺5英寸。我想把它转换成C#中的浮点值3.5。这个值在我的公式中有所不同,我需要使用它进行计算。如何完成这项任务 假设您的输入字符串被称为input: var parts = input.Trim().Split(' '); int feet = int.Parse(parts[0]); int inches = int.Parse(parts[2]); float result = feet + inches / 12.0f; 但请注意,这是肮脏的(取决

我想将高度值转换为浮点值。最终值为3英尺5英寸。我想把它转换成C#中的浮点值3.5。这个值在我的公式中有所不同,我需要使用它进行计算。如何完成这项任务

假设您的输入字符串被称为
input

var parts = input.Trim().Split(' ');
int feet = int.Parse(parts[0]);
int inches = int.Parse(parts[2]);
float result = feet + inches / 12.0f;

但请注意,这是肮脏的(取决于间距等)-因为您没有提供任何关于您得到什么和您想要什么的详细信息(或者更确切地说,我非常确定您想要什么-查看您问题下方的评论),这是您能得到的最远信息。;)

忽略3英尺5英寸不是3.5英尺的事实:

class Program
{
    static void Main(string[] args)
    {
        string heightString = "3ft 5 in";
        string validRegex = @"^\d(\s)*ft(\s)*\d(\s)*in$";
        if(!Regex.Match(heightString, validRegex).Success)
            throw new Exception("Invalid Input");

        var feetIndex = heightString.IndexOf("ft");
        var substring = heightString.Substring(0,feetIndex ).Trim();
        var inchesSubString = heightString.Substring(feetIndex + 2);
        var inchesStr = inchesSubString.Substring(0, inchesSubString.IndexOf("in")).Trim();

        var integralPart = float.Parse(substring);
        var fractionalPart = float.Parse(inchesStr)/10D;

        var result = integralPart + fractionalPart;
    }
}

假设输入的格式始终为“3 ft 5 in”,则可以按空格分割,将第一个和第三个项目以及中间的“.”连接起来,并将结果字符串转换为浮点

    public float Convert(string height)
    {
        if (string.IsNullOrEmpty(height))
            return 0;

        // input format: "3 ft 5 in"
        var spaceSplitted = height.Split(' ');
        if (spaceSplitted.Length <= 3)
            return 0;

        var concatenatedValue = spaceSplitted[0] + "." + spaceSplitted[2];

        float floatResult;

        float.TryParse(concatenatedValue, NumberStyles.Float, CultureInfo.InvariantCulture, out floatResult);

        return floatResult;
    }
公共浮点转换(字符串高度)
{
if(string.IsNullOrEmpty(高度))
返回0;
//输入格式:“3英尺5英寸”
var spaceSplitted=高度。拆分(“”);

如果(spacesplited.Length,那么字符串看起来总是像“…英尺…英寸”?是的。但是我不需要单位。你知道12英寸等于1英尺吗?:D那么“3英尺6英寸”应该是3.5;)你想要3英尺11英寸的
3.11英寸
做什么?
3.11英寸
?你的目的是什么,因为你肯定不是想做数学here@madhukumar当你发布了一个没有意义的问题,并且没有回答澄清性的问题时,就会发生这种情况。在java中,应该始终使用
double
,float并不是那么准确