【发布时间】:2017-06-02 19:25:32
【问题描述】:
这是一个非常基本的问题,我正在测试 std::cout 以打印浮点数,以下工作正常:
std::cout<<10 / 3.2<<std::endl; //Output: 3.125
但是当我尝试时:
std::cout<< 500000 / 1000000<<std::endl; //Output: 0
为什么我的第二个示例的输出不是 0.5?这是自动四舍五入吗?
我正在使用g++ -std=c++14进行编译
【问题讨论】:
-
因为那不是浮点数。
-
500000 / 1000000不是float表达式,它是int表达式。使其成为带有演员表的float,或通过将.0添加到一个或两个数字来使其成为double。 -
两个操作数都是整数,所以你只需进行整数除法。强制一个操作数浮动或加倍以进行双重操作。
标签: c++ floating-point