C++ 双重充当浮点数?
C++ double act as float?
C++
float f = 0.123456789;
double d = 0.123456789;
cout << "float = " << f << endl;
cout << "double = " << d << endl;
输出
float = 0.123457
double = 0.123457
为什么?
如何使用double和long double?
有没有比long double大的变量?
您看到的并不是变量的内容,而是四舍五入后标准输出流输出的内容。从 header <iomanip>
.
中查找 std::setprecision
函数
Coliru 快速测试:
float f = 0.123456789;
double d = 0.123456789;
std::cout << "float = " << std::setprecision(13) << f << std::endl;
std::cout << "double = " << std::setprecision(13) << d << std::endl;
产生输出:
float = 0.1234567910433
double = 0.123456789
事实证明,float 和 double 在表示数字方面确实不是同一种类型。 (提示:这甚至不是存储在浮点数中的确切数字,只是四舍五入到 13 位有效数字的数字)。
C++
float f = 0.123456789;
double d = 0.123456789;
cout << "float = " << f << endl;
cout << "double = " << d << endl;
输出
float = 0.123457
double = 0.123457
为什么?
如何使用double和long double?
有没有比long double大的变量?
您看到的并不是变量的内容,而是四舍五入后标准输出流输出的内容。从 header <iomanip>
.
std::setprecision
函数
Coliru 快速测试:
float f = 0.123456789;
double d = 0.123456789;
std::cout << "float = " << std::setprecision(13) << f << std::endl;
std::cout << "double = " << std::setprecision(13) << d << std::endl;
产生输出:
float = 0.1234567910433
double = 0.123456789
事实证明,float 和 double 在表示数字方面确实不是同一种类型。 (提示:这甚至不是存储在浮点数中的确切数字,只是四舍五入到 13 位有效数字的数字)。