Преобразовать string в float
Привет! Подскажите, пожалуйста, наиболее простой способ, как преобразовать значение типа string в float.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Преобразовать из float в string
Скажите, пжл, какие существуют ф-ии для конвертации из float в string?
Из float в string
Как из переменной типа флоат записать число в string? float x = -123.56; string Str; Нужно чтобы.
float vs string
в общем есть такая конструкция FILE* pfi; char* fn = "D:/test.txt"; pfi= fopen(fn,"w+");.
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
Регистрация: 19.11.2012
Сообщений: 27
soon, а какую библиотеку и пространство имён нужно использовать, а то у меня компилятор у Dev-C++ не распознаёт её.
Вот, что пишут я:
1 2 3 4 5 6 7 8
#include using namespace std; int main() { string str; cin >> str; float fl = stof(str); }
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
Там же указано
Defined in header
Не забываем про
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Преобразовать строку в float
Итак у меня есть переменная Char. В ней записано ‘5.2’. И есть переменная float. Как мне поместить.
Преобразовать указатель в float
допустим есть такая структура struct lol < int a; float b; >ololo; ololo.a = 34;.
String разбить на float
Всем привет.Хочу создать консольную программу по нахождению неизвестной переменной — x. Программа.

Конвертация string в float
string to float или double обычная консоль как перевести
Преобразование строки в число с плавающей запятой в C++
В этом посте мы обсудим, как преобразовать строку в число с плавающей запятой в C++.
1. Использование std::stof
Начиная с C++11, мы можем использовать std::stof функция для анализа строки как числа с плавающей запятой. Вот простое, короткое и элегантное решение C++11, демонстрирующее это:
std :: string s = «3.14» ;
float f = std :: stof ( s ) ;
std :: cout << f << std :: endl ; // 3.14
Чтобы получить возвращаемое значение типа double, используйте std::stod функция вместо этого:
std :: string s = «3.14» ;
double d = std :: stod ( s ) ;
std :: cout << d << std :: endl ; // 3.14
Лучшим вариантом является использование strtof() а также strtod() функции, чтобы получить число с плавающей запятой как float или double соответственно. Эта функция отказоустойчива и никогда не генерирует исключений.
std :: string s = «3.14» ;
float f = strtof ( s . c_str ( ) , nullptr ) ;
std :: cout << f << std :: endl ; // 3.14
double d = strtod ( s . c_str ( ) , nullptr ) ;
std :: cout << d << std :: endl ; // 3.14
2. Использование sscanf() функция
The sscanf() Функция может использоваться для чтения отформатированных данных из строки. Строка преобразуется в соответствующий тип данных в соответствии со спецификатором формата. Чтобы получить значение с плавающей запятой, используйте %f спецификатор формата. Аналогичным образом используйте %lf спецификатор формата, чтобы получить двойное значение.
Как преобразовать string в float c
Есть число записаннов float, его надо преобразовать в троку так что если число например 199986.987 или 0.0098 то и получалось так как есть а не с буквой ‘е’ и в степени
21.03.05 13:20: Перенесено модератором из ‘WIN API’ — Odi$$ey
Re: Преобразование числа типа float в строку
| От: | SWW | |
| Дата: | 21.03.05 09:32 | |
| Оценка: | +1 | |
А>Есть число записаннов float, его надо преобразовать в троку так что если число например 199986.987 или 0.0098 то и получалось так как есть а не с буквой ‘е’ и в степени
«%f» никогда не пишет ‘е’ если мне память не изменяет.
Re: Преобразование числа типа float в строку
| От: | Аноним | |
| Дата: | 21.03.05 09:39 | |
| Оценка: | -1 | |
Здравствуйте, Аноним, Вы писали:
А>Есть число записаннов float, его надо преобразовать в троку так что если число например 199986.987 или 0.0098 то и получалось так как есть а не с буквой ‘е’ и в степени
А>Спасибо.
Re[2]: Преобразование числа типа float в строку
| От: | Аноним |
| Дата: | 21.03.05 09:40 |
| Оценка: |
Здравствуйте, SWW, Вы писали:
А>>Есть число записаннов float, его надо преобразовать в троку так что если число например 199986.987 или 0.0098 то и получалось так как есть а не с буквой ‘е’ и в степени
SWW>»%f» никогда не пишет ‘е’ если мне память не изменяет.
Re[2]: Преобразование числа типа float в строку
| От: | Аноним |
| Дата: | 21.03.05 09:50 |
| Оценка: |
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>Есть число записаннов float, его надо преобразовать в троку так что если число например 199986.987 или 0.0098 то и получалось так как есть а не с буквой ‘е’ и в степени
А>>Спасибо.
А>пользуй %g
Люди, а где это писать-то надо?
Сейчас я то-то вообще ничего не понимаю.
Не могли бы вы привести пример кода.
Re[3]: Преобразование числа типа float в строку
| От: | korzhik |
| Дата: | 21.03.05 09:52 |
| Оценка: |
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, SWW, Вы писали:
А>>>Есть число записаннов float, его надо преобразовать в троку так что если число например 199986.987 или 0.0098 то и получалось так как есть а не с буквой ‘е’ и в степени
SWW>>»%f» никогда не пишет ‘е’ если мне память не изменяет.
А>а что значит «%f»?
#include float f = 1.1f; char buf[30]; sprintf(buf, "%f", f);
Re[4]: Преобразование числа типа float в строку
| От: | Аноним |
| Дата: | 21.03.05 10:00 |
| Оценка: |
Здравствуйте, korzhik, Вы писали:
K>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, SWW, Вы писали:
А>>>>Есть число записаннов float, его надо преобразовать в троку так что если число например 199986.987 или 0.0098 то и получалось так как есть а не с буквой ‘е’ и в степени
SWW>>>»%f» никогда не пишет ‘е’ если мне память не изменяет.
А>>а что значит «%f»?
K>
K>#include K> float f = 1.1f; K> char buf[30]; K> sprintf(buf, "%f", f); K>
Re[5]: Преобразование числа типа float в строку
| От: | korzhik |
| Дата: | 21.03.05 10:30 |
| Оценка: |
Здравствуйте, Аноним, Вы писали:
>>
K>>#include K>> float f = 1.1f; K>> char buf[30]; K>> sprintf(buf, "%f", f); K>>
Лучше использовать функцию _snprintf — это более безопасно (если она есть в вашем CRT)
float f = 1.1f; char buf[BUF_SIZE]; _snprintf(buf, BUF_SIZE - 1, "%f", f); buf[BUF_SIZE - 1] = 0;
Re[6]: Преобразование числа типа float в строку
| От: | Centaur | |
| Дата: | 21.03.05 17:21 | |
| Оценка: | +1 | |
Здравствуйте, korzhik, Вы писали:
K>>> sprintf(buf, «%f», f);
K>Лучше использовать функцию _snprintf — это более безопасно (если она есть в вашем CRT)
А еслт речь идёт о С++, то почему бы не использовать манипулятор std::fixed.
#include #include #include std::cout // или, если нужна именно строка символов, а не вывод в поток std::ostringstream oss; oss // работаем с oss.str()
Как преобразовать строку в число с плавающей запятой в Python
В Python есть различные функции преобразования типов, которые напрямую меняют один тип данных на другой. В этой статье мы расскажем о том, как преобразовать строку в число с плавающей запятой.
Зачем вообще може понадобиться такое преобразование? В Python, когда входные данные получаются в результате чтения или записи файла или выполнения какой-либо другой операции с файлом, ввод мы получаем в виде строковой переменной. Даже если мы запрашивали число с плавающей запятой, метод input() получает входные данные в виде строки. Поэтому для дальнейшей работы с нужными нам числами придется сначала привести string к float.
Использование метода float()
Чтобы преобразовать строку в число с плавающей запятой, в Python используется функция float(). Эта функция принимает только один параметр — строку или целое число. Если аргументы не переданы, метод возвращает 0.0 .
Если входная строка имеет аргументы за пределами диапазона чисел с плавающей запятой, вы получите ошибку OverflowError .
Для реализации следующих скриптов на Python установите сам Python, а также подходящую IDE (Pycharm, Jupiter, Spyder и т.д.). Создайте новый файл, вставьте туда код и запустите его.
string = '3.4567' number = float(string) print('Float Value is', number) # Output: # Float Value is 3.4567
В данном примере мы берем строку «3.4576» . Мы конвертируем ее, передавая в функцию float(). Дальше строка преобразуется в число с плавающей запятой и возвращается нам.
Как преобразовать строку в число с плавающей запятой, если в строке есть лишние запятые
В следующем примере мы работаем со строкой «3,2.759» . В данной строке есть число, разделенное запятой и точкой.
Важно отметить, что в Python десятичная часть отделяется с помощью точки. И в данном случае запятая – это просто лишний символ, который добавляет нам трудностей при переводе числа из строкового типа в вещественный.
Преобразовать такую строку в число с плавающей запятой сложнее. Вызов функции float() напрямую приведет нас к ошибке. Поэтому, прежде чем вызвать функцию float(), нам нужно избавиться от лишней запятой в строке.
Запятую мы удалим из строки с помощью функции replace(), заменив ее на пустую строку.
string = '3,2.759' number = float(string.replace(',', '')) print('Float Value is', number) # Output: # Float Value is 32.759
После удаления запятой из строки значение нашей строки будет «32.759» . Далее мы можем применить метод float(), чтобы получить число вещественного типа.
Преобразование списка строк
Допустим, у нас есть список, содержащий числа в строковом формате. Чтобы преобразовать все эти элементы в числа с плавающей запятой, мы перебираем список в цикле for . Каждый элемент мы преобразуем из строкового в вещественный. Делается это при помощи функции float().
str = ['12.23', '45.78', '69.34', '38.65'] number = [] for item in str: number.append(float(item)) print(number) # Output: # [12.23, 45.78, 69.34, 38.65]
В данном примере у нас есть список [‘12.23’, ‘45.78’, ‘69.34’, ‘38.65’] . Мы создаем пустой список number , куда добавим наши числа в формате float. Далее мы используем цикл for для добавления каждого элемента из исходного списка в список number . При этом перед добавлением мы передаем в функцию float() каждый элемент, чтобы преобразовать его из строки в число с плавающей запятой.
В итоге мы получим новый список number , состоящий из исходных элементов, но только теперь это уже не строки, а числа с плавающей запятой.
Задание определенной точности
Иногда нам нужно указать количество знаков после запятой в числе. В такой ситуации мы используем все ту же функцию float(), а после нее — функцию format(), чтобы определить количество десятичных знаков в нашем числе.
В данном примере мы работаем со строкой «6.759104» . Нам нужно преобразовать эту строку в число с плавающей запятой и оставить только 4 цифры после запятой.
str = '6.759104' number = float(str) result = ''.format(number) print(result) # Output: # 6.7591
Здесь метод format() используется для определения количества десятичных знаков в числе с плавающей запятой. В данном случае в исходном числе после запятой больше знаков, чем четыре, поэтому происходит округление. Однако если бы вдруг знаков оказалось меньше, то в конец просто бы добавились нули.
Таким образом, после применения функции format() мы получим 6.7591 .
Заключение
В Python бывают такие случаи, когда для выполнения требуемой операции необходимо заменить один тип данных на другой. Метод input() в Python возвращает нам объект типа string, поэтому для выполнения различных операций с пользовательскими данными необходимо приводить полученные строки к нужному типу. В этой статье мы рассмотрели приведение строк к типу float.
Важно отметить, что для приведения к типу float с помощью функции float() строка должна иметь значение с точкой. То есть преобразовать буквы в число с плавающей запятой не получится. Если попытаетесь, получите ValueError . Если элемент находится за пределами диапазона плавающей переменной, в выводе отображается ошибка OverflowError . Если функции float() не передан аргумент, возвращается 0.0 .
Надеемся, данная статья была для вас полезна. Успехов в написании кода!