Как преобразовать строку в float
timur2008 Дата: Суббота, 14 Мая 2016, 07:34 | Сообщение # 1
частый гость
Сейчас нет на сайте
Здравствуйте. Подскажите пожалуйста как преобразовать строку во float. Вроде все просто должно а что-то не просто совсем получается. Строка такого типа 123.3
martuk Дата: Суббота, 14 Мая 2016, 07:49 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Код
float drobnoe = GetFloat(stroka, 0.0F); private float GetFloat(string stringValue, float defaultValue) { cfloat result = defaultValue; float.TryParse(stringValue, out result); return result; }
Добавлено (14 мая 2016, 07:49) --------------------------------------------- Создай функцию и потом ее вызывай, когда нужно.
Сообщение отредактировал martuk - Суббота, 14 Мая 2016, 07:47
timur2008 Дата: Суббота, 14 Мая 2016, 08:27 | Сообщение # 3
частый гость
Сейчас нет на сайте
так не не работает пробовал уже он 0 выдает вместо значения тогда
Сообщение отредактировал timur2008 - Суббота, 14 Мая 2016, 08:29
8Observer8 Дата: Суббота, 14 Мая 2016, 09:19 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Можно ещё проверять удачно ли прошло преобразование:
Код
using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { float result; // Здесь будет результат bool isSuccess; // Флаг проверки: удочно ли преобразование isSuccess = float.TryParse("3.14f", out result); // Из строки в число if (isSuccess) { Console.WriteLine(result); } else { Console.WriteLine("Error"); } Console.ReadKey(); } } }
timur2008 Дата: Суббота, 14 Мая 2016, 10:07 | Сообщение # 5
частый гость
Сейчас нет на сайте
да это то ясно но всерано проблему не решает, просто странно в тот же дабл вообще без проблем преобразкется а с флоат столько гемора
falcoware Дата: Суббота, 14 Мая 2016, 11:05 | Сообщение # 6
старожил
Сейчас нет на сайте
timur2008 , public static float ToSingle( string value ) Такое пробывали?
timur2008 Дата: Суббота, 14 Мая 2016, 11:18 | Сообщение # 7
частый гость
Сейчас нет на сайте
Код
private float StringToFloat(string num) { num = num.Trim(new char[] { '(', ')' }); //float f; float f = Convert.ToSingle(num); //float.TryParse(num, out f); print(f); return f; }
пробовал, юнити говорит неизвестный чар символ.
falcoware Дата: Суббота, 14 Мая 2016, 11:23 | Сообщение # 8
старожил
Сейчас нет на сайте
timur2008 , приведите строку, которую преобразовываете?
timur2008 Дата: Суббота, 14 Мая 2016, 11:43 | Сообщение # 9
частый гость
Сейчас нет на сайте
123.5
falcoware Дата: Суббота, 14 Мая 2016, 11:44 | Сообщение # 10
старожил
Сейчас нет на сайте
timur2008 , а если попробывать f добавить в конце?
timur2008 Дата: Суббота, 14 Мая 2016, 11:47 | Сообщение # 11
частый гость
Сейчас нет на сайте
эмм не понял , это как ?
falcoware Дата: Суббота, 14 Мая 2016, 11:49 | Сообщение # 12
старожил
Сейчас нет на сайте
123.5f
timur2008 Дата: Суббота, 14 Мая 2016, 11:50 | Сообщение # 13
частый гость
Сейчас нет на сайте
num = num + "f"; нет так не проканывает
falcoware Дата: Суббота, 14 Мая 2016, 11:55 | Сообщение # 14
старожил
Сейчас нет на сайте
Вы уверены что "." а не Запятая? Попробуйте 123 просто строку.
timur2008 Дата: Суббота, 14 Мая 2016, 11:58 | Сообщение # 15
частый гость
Сейчас нет на сайте
там тогда вообще магия получается он превращает 123.5 в 1235
falcoware Дата: Суббота, 14 Мая 2016, 12:01 | Сообщение # 16
старожил
Сейчас нет на сайте
timur2008 , видать точка не тот символ? Проверьте ее ASCII номер. Возможно раскладка не английская?
timur2008 Дата: Суббота, 14 Мая 2016, 12:05 | Сообщение # 17
частый гость
Сейчас нет на сайте
да нет , там все верно
falcoware Дата: Суббота, 14 Мая 2016, 12:08 | Сообщение # 18
старожил
Сейчас нет на сайте
timur2008 , переставляй винду!
timur2008 Дата: Суббота, 14 Мая 2016, 13:50 | Сообщение # 19
частый гость
Сейчас нет на сайте
да нет , там полюбасу способ есть , фигня какая тоДобавлено (14 мая 2016, 13:50) ---------------------------------------------
Код
float.Parse("123.3", CultureInfo.InvariantCulture)
Вот так сработало