将人的身高从英尺和英寸转换为英寸C#

时间:2015-08-26 14:43:55

标签: c# algorithm

使用外部API请求一个人的身高(英寸),所以5.10“(5英尺和10英寸)将是70”,现在我想给用户一个输入框,这样他们就可以输入5.10然后转换它到70以便将其传递给API。我认为有一个直接的解决方案是:

  1. 将输入截断为0
  2. 将它从英尺转换为英寸
  3. 得到尾数
  4. 将其转换为int
  5. 添加两个
  6. 但我认为可能不是那么简单,请指出正确的方向。编码它应该对输入的细节和验证没有任何问题,例如,如果用户输入例如5.12或5.13将会发生什么

2 个答案:

答案 0 :(得分:2)

因此,如果用户键入5. 10,您可以像这样解析它以获得英尺和英寸:

string userInput = "5. 10";
int feet = Convert.ToInt32(userInput.Substring(0, userInput.IndexOf(".")));
int inches = Convert.ToInt32(userInput.Substring(userInput.IndexOf(".") + 1).Trim())

然后做数学

return (feet * 12) + inches;

您显然希望进行大量错误处理,以确保用户的输入格式正确。

答案 1 :(得分:2)

你可以试试这个:

private int toInches(string input)
{
    if (input.Contains("."))
    {
        string sfeet = input.Split('.')[0];
        string sinches = input.Split('.')[1];
        int feet, inches;
        if (int.TryParse(sfeet, out feet) && int.TryParse(sinches, out inches))
        {
            return feet*12 + inches;
        }
        throw new Exception("The input is invalid");
    }
    else
    {
        int output;
        if (int.TryParse(input, out output))
        {
            return output*12;
        }
        throw new Exception("The input is invalid");
    }
}