Я хочу преобразовать значение высоты в значение float. Конечное значение - 3 фута 5 дюймов. Я хочу преобразовать его в значение float 3.5 в C#. Это значение меняется в моей формуле, и мне нужно использовать его для расчета. Как это сделать?Как преобразовать строку в значение float?
ответ
Предполагая, что ваша входная строка называется input
:
var parts = input.Trim().Split(' ');
int feet = int.Parse(parts[0]);
int inches = int.Parse(parts[2]);
float result = feet + inches/12.0f;
Но следует помнить, что это грязная (в зависимости от расстояния, и т.д.) - так как вы не предоставили каких-либо дополнительных деталей о том, что вы получаете и что вы хотите (или, вернее, я уверен, что вы хотите - посмотрите комментарии ниже своего вопроса), это насколько вы можете получить. ;)
Игнорируя тот факт, что 3ft 5in не является 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 футов 5», можно разделить на пространстве, сцепить первый и третий пункт наряду с "." между ними и преобразовать полученную строку в float.
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;
}
Должен всегда использовать 'double' в java, float не так точно – StormeHawke
- 1. Как преобразовать многоточечную строку в значение float
- 2. Как преобразовать строку в float
- 3. Python - преобразовать строку-числовое значение в float
- 4. Как преобразовать строку в float
- 5. Как преобразовать строку в Float?
- 6. Невозможно преобразовать строку в float
- 7. Как преобразовать строку в float с Perl?
- 8. Как преобразовать строку UTF8 в значение float в объекте-c
- 9. Невозможно преобразовать строку в float
- 10. Преобразовать координатную строку в float
- 11. Как преобразовать строку в float в python?
- 12. Как преобразовать строку в float в python?
- 13. Как преобразовать строку в float в ssis
- 14. Как преобразовать строку в float в JavaScript?
- 15. Как преобразовать строку Lua в float
- 16. Как преобразовать строку в Integer или Float
- 17. преобразовать строку в float внутри функции SUMIF
- 18. Как преобразовать значение чтения ADC в Float?
- 19. Как преобразовать двоичные данные в значение float?
- 20. Как преобразовать шестнадцатеричный шаблон (как строку) в float в Node.js?
- 21. Невозможно преобразовать строку в float в Python
- 22. numpy.loadtxt не удалось преобразовать строку в float
- 23. Преобразовать строку в float с точностью
- 24. Правильно преобразовать строку в float python
- 25. Не удается преобразовать строку в Float
- 26. Python не смог преобразовать строку в float
- 27. Преобразовать строку с инженерным префиксом в float
- 28. ValueError: не удалось преобразовать строку в float.
- 29. ValueError: не удалось преобразовать строку в float:
- 30. ValueError: не удалось преобразовать строку в float
так что строка будет ** всегда ** выглядеть как "... ft ... in"? – olydis
есть. но мне не нужны юниты. –
Вы знаете о том, что 12 дюймов - 1 фут? : D so "3 ft 6 in" будет 3.5;) – olydis