使用外部API请求一个人的身高(英寸),所以5.10“(5英尺和10英寸)将是70”,现在我想给用户一个输入框,这样他们就可以输入5.10然后转换它到70以便将其传递给API。我认为有一个直接的解决方案是:
但我认为可能不是那么简单,请指出正确的方向。编码它应该对输入的细节和验证没有任何问题,例如,如果用户输入例如5.12或5.13将会发生什么
答案 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");
}
}