打印出一个非常小的浮点数

Print out a really small floating-point number

本文关键字:非常 浮点数 一个 打印      更新时间:2023-10-16

我有以下代码:

float test = 1/(10^(15));
std::cout << "test: " << test << std::endl;

,但我得到"测试:0"作为值。我想要"测试:0.000000000000001"。

我该如何实现?

这里有多个问题。

10 ^ 15

看起来您期望"^"是指数运算符,这是第15个电源的十个。

不是。在C和C 中,"^"是一个排名或运算符。

第二个问题是表达式中的所有值都是整数值。这意味着(1/(10^15))的计算如下:

1)10^15 = 5,请记住,^确实是一个排独特或操作员。

2)1/5 = 0,因为这些是整数值,所以这是整数划分,这就是为什么您获得0。

的值。

解决此问题的最佳方法是使用科学符号:

float test = 1/(1e15);
std::cout << "test: " << test << std::endl;

科学符号同时实现了两个目的:一个,您得到正确的值,两个,这是自动的浮点值,因此该部门作为浮点部门进行。