21xrx.com
2024-11-10 00:56:33 Sunday
登录
文章检索 我的文章 写文章
为什么C++中5/9的结果是0?
2023-07-09 01:05:24 深夜i     --     --
C++ 5/9 结果 0 问题

在C++中,当将两个整数进行除法运算(例如5/9)时,结果会被向下取整,因此结果为0。这是因为C++将结果作为整数除法处理,而不是浮点数除法处理。

如果要将5/9的结果作为浮点数得到正确的结果,则可以将其中一个操作数或两个操作数强制转换为浮点数,例如:

- double result = 5.0 / 9;

- double result = static_cast (5) / 9;

- double result = 5 / static_cast (9);

另外,通过使用C++标准库中的数值类型,比如std::divides,也可以避免这个问题。std::divides是一个函数对象,执行浮点数除法。

- #include

- double result = std::divides ()(5, 9);

在实际编程中,如果需要进行除法运算并且需要浮点结果,建议使用上述方法之一来避免得到不正确的结果。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复