为什么在C++算术函数中加".0"会给出小数点的答案?
Why does adding ".0" in C++ arithmetic functions give out the answer in decimal points?
#include <iostream>
int main()
{
//Returns Seven divided by three is 2
std::cout << "Seven divided by three is " << 7/3 << std::endl;
//Return Seven divided by three is 2.33333
std::cout << "Seven divided by three is " << 7.0/3 << std::endl;
std::cout << "Seven divided by three is " << 7.0/3.0 << std::endl;
}
即使我没有在代码中放置浮点数或双精度变量,将.0
添加到数字末尾如何返回十进制答案?
C++是一种强类型语言。这意味着每个对象,甚至是右值常量,都有一个类型。7
和7.0
的类型不同。您可以在一个简单的示例中看到这一点:
std::cout << typeid(7).name() << "n";
std::cout << typeid(7.0).name() << "n";
指纹:
i
d
对于integer
和double
.
您的分部操作在7.0/3
的单一情况下导致双重打印的原因是因为整体升级的规则。在这种情况下,3
提升为双精度型,结果值为双精度型。
常量 7 和 3 是整数,而常量 7.0 和 3.0 是双精度浮点数。
当您将两个整数相除时,结果是一个整数。
将两个浮点数或一个浮点数和一个整数相除时,结果是一个浮点数,每个浮点数的精度最高。
因为它使操作数类型为double
,从而导致整个表达式为类型double
。
当您将.0
字符序列附加到曾经是整数文本的内容时,它不再是整数。它现在表示类型为double
的浮点文本,它是类型为double
的表达式中的操作数之一,因此运算符<<选择double
重载(第五个(并相应地输出结果。
表达:
7 / 3
属于int
类型,因为两个操作数都属于int
类型。
表达方式:
7.0 / 3
属于类型double
,因为至少有一个操作数属于double
类型。
表达:
7.0 / 3.0
也是double
型。
相关文章:
- 欧拉项目#8答案是大以获得有效答案
- 首要问题的答案让值班员搞错了
- C++问题:用户认为数字1-100,程序提出问题不超过6次即可得到答案。无法正确
- 用c++把小数点转换成八进制
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 使用 bfs 解决连接组件问题时得到错误的答案
- 同一对象的"sizeof"的不同答案
- 如何在 c++ 中将小数点后两位数的浮点数分配给另一个浮点数
- 使用 cin 时接受小数点后的 2 位数字
- 递归求和任务的错误答案
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- 为什么C++程序在太大时返回代码而不是答案?
- 不理解为什么代码没有产生所需的答案
- 为什么我在代码厨师的 CMPRSS 问题中得到 WA(错误答案)?
- 我的程序将 26 个字母转换为 ascII 没有显示正确答案
- 请找出我的代码中的错误,它在提交得到错误答案的同时仍然适用于我的所有测试用例
- 任何人都可以弄清楚这段代码如何显示运行错误?它打印无限时间 -1 以及正确答案
- C++ 中 pow() 函数的输出没有给出准确的答案
- 为什么在C++算术函数中加".0"会给出小数点的答案?
- 如何在c++中显示超过1小数点长的答案