Как преобразовать string в float c
Перейти к содержимому

Как преобразовать string в float c

  • автор:

Перевод string в float c++/cli

Не могу никак перевести string в float . В методичке написан метод StrToFloat() , но в моей Visual Studio 2017 это не воспринимается. Подскажите какой метод в C++/CLI использовать для этой операции. Через strof тоже не работает

float f1 = strtof( textBox1->Text); 

идентификатор

введите сюда описание изображения

Отслеживать
Дмитрий Котовский
задан 12 фев 2019 в 10:05
Дмитрий Котовский Дмитрий Котовский
67 1 1 серебряный знак 10 10 бронзовых знаков

StrToFloat — это борландовская ф-ция. atof нужна (и стандартная библиотека). А да. float::Parse для с++/cli или что-то такое.

12 фев 2019 в 10:06
Картинка с ошибкой студии, конечно, полезна, но надо ещё и код приводить в текстовом виде в вопросе.
12 фев 2019 в 10:16

Поддерживаю, Сайт SO хорошо подсвечивает синтаксиз языка для текста, публиковать картинку не нужно, вместо картинки нужно публиковать сам текст.

12 фев 2019 в 10:18
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) < float f1 = StrToFloat(textBox1->Text); >
12 фев 2019 в 10:21

Вам нужно преобразовать строк в число или число в строку? А то в заголовке одно, в теле вопроса другое

Как преобразовать строку в число с плавающей запятой в 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 .

Надеемся, данная статья была для вас полезна. Успехов в написании кода!

Как преобразовать string в float c

Преобразование типов данных, это приведение одного типа к другому. Например, приведение целочисленной переменной к числу с плавающей точной, или преобразование числа в строку. В C# выделяют два варианта преобразования типов:

  • Неявное преобразование типов. Это, так называемое безопасное преобразование типов в C#. Например, преобразование из типа float (более «маленький» тип) в тип double (более «большой» тип). При таком преобразовании никакая информация не «потеряется», что при обратном преобразовании вполне возможно.
  • Явное преобразование типов. Такое преобразование выполняется программистом с прямым указанием типа, к которому нужно привести переменную. Для такого преобразования требуется наличие оператора преобразования.

А теперь, я покажу как можно использовать явное преобразование типов в C#:

using System; namespace TypesConvertion < class Program < static void Main(string[] args) < //Число с плавающей точкой double doubleData = 245.45; //Вывод этого числа Console.WriteLine(doubleData); //А теперь, мы сделаем на основе этого числа, цело число int intData = (int)doubleData; //Вывод целого числа Console.WriteLine(intData); //Чтобы окно не закрылось раньше времени Console.ReadKey(); >> >

Преобразование типа double в тип int выполнялось в выделенной строке (строке с номером 16). Если вы соберете данный пример и запустите его, то увидите, что преобразование типов прошло, т.е. из числа с плавающей точкой мы получили целое число.

Так же, для преобразования данных из одного типа в другой, есть целый класс с именем Convert, у которого имеются специальные методы. Ниже, в таблице, представлены основные методы этого класса.

Название метода Целевой тип
ToBoolean bool
ToByte byte
ToChar char
ToDouble double
ToSingle float
ToInt32 int
ToInt64 long
ToString string

А теперь, пример использования класса Convert и его методов:

using System; namespace TypesConvertion < class Program < static void Main(string[] args) < //Число с плавающей точкой double doubleData = 245.45; //Вывод этого числа Console.WriteLine(doubleData); //А теперь, мы сделаем на основе этого числа, цело число int intData = Convert.ToInt32(doubleData); //Вывод целого числа Console.WriteLine(intData); //Чтобы окно не закрылось раньше времени Console.ReadKey(); >> >

Как видите, это практически тот же код, что был в первом примере, но с использованием другого подхода в преобразовании типов.

И обратите внимание на еще одни момент, если один тип нельзя преобразовать в другой, а вы это попытаетесь сделать, то получите ошибку в программе!

Пользоваться возможность преобразования типов вам придется довольно часто!

Как преобразовать 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()

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *