float的相互转换

# C++

C ++字符串与浮点数和双浮点数转换

将字符串转换为浮点数的最简单方法是使用以下C ++ 11函数:

  • std :: stof() - 将string转换为float
  • std :: stod() - 将string转换为double
  • std :: stold() - 将string转换为long double。

这些函数在string头文件中定义。

示例1:C ++字符串转换为浮点和双浮点数

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

#include <iostream>
#include <string>

int main() {
    std::string str = "123.4567";

    // 将字符串转换为浮点数
    float num_float = std::stof(str);

    // 将字符串转换为双浮点数 double
    double num_double = std::stod(str);

   std:: cout<< "num_float = " << num_float << std::endl;
   std:: cout<< "num_double = " << num_double << std::endl;

    return 0;
}

输出结果

num_float = 123.457
num_double = 123.457

示例2:将C ++ char数组转换为double

我们可以使用std::atof()函数将char数组转换为double。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>

// atoi()需要cstdlib
#include <cstdlib>

int main() {

    // 声明和初始化字符数组
    char str[] = "123.4567";

    double num_double = std::atof(str);

    std::cout << "num_double = " << num_double << std::endl;
    
    return 0;
}

输出结果

num_double = 123.457


Reference

C++ String(字符串)和 float/double (浮点数)互转 - 菜鸟教程 (cainiaojc.com)