C# 如何将字符串转换为浮点值?
我想将高度值转换为浮点值。最终值为3英尺5英寸。我想把它转换成C#中的浮点值3.5。这个值在我的公式中有所不同,我需要使用它进行计算。如何完成这项任务 假设您的输入字符串被称为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; 但请注意,这是肮脏的(取决
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并不是那么准确