<< (1000 < pow(10,3)) << endl;给 1
cout << (1000 < pow(10,3)) << endl; gives 1
我只是想知道为什么
cout << (1000 < 1000) << endl;
给0
,而
cout << (1000 < pow(10, 3)) << endl;
给1
.
>std::pow
不适用于整型。如果你提供整数,它会将它们投射到double
(请参阅链接页面上的第 7 个重载)。
然后调用的结果是一个double
,它恰好略有偏差(因为浮点算术是有损的),足以将严格较大的文本值与直接转换为double
的文字值进行比较1000
。
看看每个计算机科学家都应该知道的关于浮点运算的知识。
相关文章:
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 呼叫运营商<<临时
- 如何防止clang格式在流运算符调用之间添加换行符<<
- <<操作员在下面的行中工作
- 什么是现实中的"endl"(或任何输出操纵器)?它是如何实现的,它如何与操作员<<一起工
- std::endl,在 Python 中是否有等价物?(返回 + 刷新)
- 运算符 << 操作加载的 API for std::endl?
- 我在 C++ 中创建了一个函数来递归反转字符串,但是之后如何使功能打印一个 endl?
- 可变参数模板函数:调用没有匹配函数,std::endl
- 如何显式调用运算符<<
- 模板推导不适用于 std::endl?
- std::cout << glGetString(GL_RENDER) << std::endl;抛出错误但不GL_Renderer或GL_Verision,我不知道为什么?
- std::flush 不起作用,而 std::endl 可以
- "cout<<count<<endl;"没有打印任何内容
- 模板操作员&lt;未打电话
- C / CUDA中的模板方法是3个角括号(&lt;&lt;&lt;)
- C - 创建矢量&lt; vector&lt; double&gt;&gt;矩阵具有分配而不是inizializ
- 错误:调用"std::vector<:vector<int>>::p ush_back(std::vector<std::__cxx11::basic_string<
- 使用带有重载<<endl上的运算符
- 将std::endl传递给std::operator<<