C++ int未转换为double
我有C++ int未转换为double,c++,C++,我有double d=5 当我打印d时,它打印的是5,而不是5.0 这里的一般逻辑是什么?我认为它应该打印5.0,因为它应该被转换,对吗 我的意思是,当你说boolb23,它被转换为b=1并在打印b时打印1 我想知道原因和一般逻辑。我只能在这里猜测,并假设较大(double)可以转换为较小(int),但不能从较小转换为较大,是吗?这是一个格式问题,内存中的值仍然是5.0浮点值。如果小数部分为零,double的默认输出格式将不显示小数部分 可以使用固定格式强制显示小数部分: std::cout &
double d=5代码>
当我打印d时,它打印的是5,而不是5.0
这里的一般逻辑是什么?我认为它应该打印5.0,因为它应该被转换,对吗
我的意思是,当你说boolb23代码>,它被转换为b=1代码>并在打印b时打印1
我想知道原因和一般逻辑。我只能在这里猜测,并假设较大(double)可以转换为较小(int),但不能从较小转换为较大,是吗?这是一个格式问题,内存中的值仍然是5.0
浮点值。如果小数部分为零,double
的默认输出格式将不显示小数部分
可以使用固定格式强制显示小数部分:
std::cout << std::fixed << d << std::endl;
虽然这种格式也会强制指数
std::fixed
和std::scientific
都在iomanip
标题中定义。如何打印?printf(“%f”,d);然后看看你得到了什么。好吧,这是我们所期望的,但我想用cout。这里发生了什么?试试:std::cout
std::cout << std::scientific << d << std::endl;