Преобразование числа с плавающей запятой в строку в C++

Функция Vector Insert () в C++ Программирование и разработка

В этой статье мы узнаем, как мы можем преобразовать число с плавающей запятой в строку на C++, используя различные методы:

  • Использование to_string()
  • Использование строкового потока
  • Использование макросов
  • Использование lexical_cast из библиотеки boost

1. Использование to_string()

Метод to_string() принимает одну целочисленную переменную или другой тип данных и преобразует ее в строку.

Синтаксис:

string to_string (float value);

Пример:

С++

#include <bits/stdc++.h>
using namespace std;
 
int main() {
    float x=5.5;
      string resultant;
      resultant=to_string(x);
    cout << "Converted value from float to String using to_string() is : "<<resultant<<endl;
    return 0;
}

Выход

Converted value from float to String using to_string() is : 5.500000

Объяснение: Функция to_string преобразует заданное значение с плавающей запятой в строку.

2. Использование строкового потока

Строковый поток связывает строковый объект с потоком, позволяя вам читать из строки, как если бы это был поток (например, cin). Чтобы использовать stringstream, нам нужно подключить заголовочный файл sstream. Класс stringstream чрезвычайно полезен при разборе входных данных. Основные методы:

  • clear() — очистить поток.
  • str() — для получения и установки строкового объекта, содержимое которого присутствует в потоке.
  • operator << — Добавить строку в объект stringstream.
  • operator >> — Чтение чего-либо из объекта stringstream.

Пример:

С++

#include <bits/stdc++.h>
using namespace std;
 
int main() {
     
      float x=5.5;
      stringstream s;
      s<<x; // appending the float value to the streamclass
      string result=s.str(); //converting the float value to string
    cout <<"Converted value from float to String using stringstream is : "<<result<<endl;
    return 0;
}

Выход

Converted value from float to String using stringstream is : 5.5

Объяснение: Класс stringstream преобразует значение с плавающей запятой из переменной в строку. Это встроенный класс, присутствующий в библиотеке C++.

Читайте также:  Оператор сравнения перегрузки in C++

3. Использование макросов

Этот метод применяется исключительно к преобразованию с плавающей запятой. ‘#’ используется макросом STRING для преобразования значений с плавающей запятой в String.

Синтаксис: 

#define STRING(Value) #Value
string gfg(STRING(Float_value));

Пример:

С++

#include <bits/stdc++.h>
#include <string>
using namespace std;
//using macro to convert float to string
#define STRING(Value) #Value
 
int main() {
    string gfg(STRING(5.5));
    if(gfg.empty()) cout << "The String is empty"<<endl ;
    else cout << gfg << endl;
 
    return EXIT_SUCCESS;
}

Выход

5,5

4. Использование lexical_cast

Boost.LexicalCast, который определен в библиотеке «boost/lexical_cast.hpp», предоставляет оператор приведения, boost::lexical_cast, который может преобразовывать числа из строк в числовые типы, такие как int или double, и наоборот. boost::lexical_cast — это альтернатива таким функциям, как std::stoi(), std::stod() и std::to_string(), которые были добавлены в стандартную библиотеку в C++11.

Синтаксис:

float x= 5.5;
string res = lexical_cast<string>(x);

Пример:

С++

#include "boost/lexical_cast.hpp"
#include <bits/stdc++.h>
using namespace std;
using boost::lexical_cast;
using boost::bad_lexical_cast;
int main() {
   // Float to string conversion
  float x= 5.5;
  string res = lexical_cast<string>(x);
  cout << res << endl;
  return 0;
}

Выход:

5,5

Оцените статью
bestprogrammer.ru
Добавить комментарий