📜  c++ 中的浮点数(1)

📅  最后修改于: 2023-12-03 14:39:54.726000             🧑  作者: Mango

C++中的浮点数

简介

浮点数(Floating-point number)是一种用于表示实数(数轴上所有的有理数和无理数)的数据类型。C++中的浮点数类型是基本的数据类型之一,并提供了各种操作和函数来处理浮点数。

C++中有两种主要的浮点数类型:floatdouble

float类型

float是C++中最基本的浮点数类型,它通常使用32位(4字节)的存储空间来表示一个浮点数。它的取值范围约为±3.4e-38到±3.4e38,精度约为6位有效数字。

float myFloat = 3.14f;
double类型

double是C++中另一种常用的浮点数类型,它通常使用64位(8字节)的存储空间来表示一个浮点数。它的取值范围约为±1.7e-308到±1.7e308,精度约为15位有效数字。

double myDouble = 3.14159;
浮点数的运算

C++提供了一系列的运算符和函数来进行浮点数的运算,包括加法、减法、乘法、除法等。例如:

float a = 3.5f;
float b = 2.2f;
float sum = a + b; // 加法
float difference = a - b; // 减法
float product = a * b; // 乘法
float quotient = a / b; // 除法
精度问题

由于浮点数的内部表示方式,可能会导致一些精度问题。在进行浮点数比较时,需要注意使用适当的比较方式,例如比较它们的差值是否小于一个极小的数。

double a = 0.1 + 0.1 + 0.1;
double b = 0.3;
if (std::abs(a - b) < 1e-9) {
    std::cout << "a and b are approximately equal." << std::endl;
}
数字格式化

C++提供了多种方式来格式化浮点数的输出,包括控制小数点位数、设置科学计数法、添加千位分隔符等。

double number = 12345.6789;
std::cout << std::fixed << std::setprecision(2) << number << std::endl; // 输出两位小数
std::cout << std::scientific << number << std::endl; // 科学计数法输出
std::cout << std::fixed << std::setprecision(2) << std::showpos << number << std::endl; // 带符号输出
std::cout << std::fixed << std::setprecision(2) << std::showpoint << number << std::endl; // 显示小数点

以上是C++中浮点数的简介和基本使用,希望能帮助到程序员们处理和理解浮点数的相关概念和操作。