打印出一个非常小的浮点数
Print out a really small floating-point number
我有以下代码:
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;
科学符号同时实现了两个目的:一个,您得到正确的值,两个,这是自动的浮点值,因此该部门作为浮点部门进行。
相关文章:
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- 使用提升将数据从 PyObject 复制到浮点数 *
- 使用浮点数和双精度数的非常小数字的数学
- 使用英特尔内联函数将打包的 8 位整数乘以浮点数向量
- 如何在 c++ 中将小数点后两位数的浮点数分配给另一个浮点数
- 返回浮点数的小数位数
- txt 文件中浮点数的最大和最小值
- 为什么 std::cout 打印浮点数、双精度和长双精度到相同的小数精度?
- 将浮点数转换为无符号字符数组并打印出来
- 如何将时间字符串 (M:SS) 转换为浮点数
- 如何将浮点数(*)[6]转换为浮点**类型?
- C++将浮点数乘以分数
- C++ - 浮点数组在某个非常大的索引之后不存储值
- C++非常小的浮点数,精确
- 打印出一个非常小的浮点数
- std::istream 提取运算符(双精度或浮点数)在 VS 2012 中非常慢
- 非常大的浮点数会导致不确定性
- 浮点数 - 如何在 c++ 中处理非常小的数字