gpt4 book ai didi

c++ - 用 static_cast 舍入?

转载 作者:IT老高 更新时间:2023-10-28 22:24:38 24 4
gpt4 key购买 nike

我觉得问这个真的很傻,因为我知道如何做 101 种方法,但不知道书中定义的方法。 (注意,我懂 C++)

到目前为止,我们只介绍了 C++ 的基础知识。所以基本上,我们知道变量、赋值和基本转换。

在书中我遇到了这部分问题:

  • 提示用户输入十进制数
  • 将该数字转换为最近的整数并将其打印到屏幕上

所以我有简单的代码:

double n;
cout<<"Number: ";
cin >> n;
cout <<endl<<static_cast<int>(n)<<endl;

但我意识到这对我不起作用。它总是会截断小数点,以便 1.9 -> 1 而不是预期的 1.9 -> 2

如何仅使用我“知道”的内容来解决此问题? (如,没有 round() 或 if 语句等)

这是标准合规问题吗?在学校我以为我在 Windows XP 32 位上使用 Visual C++ 2005 有类似的工作,但现在我在家里尝试做同样的事情,但它不起作用。我的家庭编译器是 OpenBSD 64 位上的 gcc 3.3.5。或者这可能是书中的错字?

最佳答案

static_cast<int>(n+0.5)

static_cast<int>(n >= 0 ? n + 0.5 : n - 0.5)更正确的负面行为n .

关于c++ - 用 static_cast<int> 舍入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2205211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com