如何将十进制添加到具有非十进制值的浮点数 [已关闭]

How to add decimal to floating point number with non-decimal value [closed]

提问人:user21037758 提问时间:1/19/2023 最后编辑:user21037758 更新时间:1/20/2023 访问量:97

问:


想改进这个问题吗?通过编辑这篇文章添加详细信息并澄清问题。

10个月前关闭。

这篇文章在 10 个月前被编辑并提交审核,但未能重新打开帖子:

原始关闭原因未解决

我有以下程序,我希望输出为 10.0,我必须在函数乐趣中添加
哪一行代码,以便我有想要的输出。

#include<bits/stdc++.h>
using namespace std;
float fun(float a)
{
    return a;
}
int main()
{
    float a = 10;
    cout << fun(a);
    return 0;
}

我尝试使用 setprecision(),但它经常与 cout 一起使用。返回输出时如何使用它?我被困在这里。

C++ 浮点整 十进制 精度

评论

5赞 molbdnilo 1/19/2023
10.0,与 10 的数字相同。默认情况下不打印尾随零。请参阅 std::fixed
3赞 Pete Becker 1/19/2023
您可以转换为内部的文本,然后更改为返回。浮点值只是值;如何设置输出格式取决于输出的文本转换,而不是值。afunfunstd::string
2赞 wohlstad 1/19/2023
旁注: (1) : stackoverflow.com/questions/31816095/..., (2) : stackoverflow.com/questions/1452721/...#include <bits/stdc++.h>using namespace std;
2赞 Jesper Juhl 1/19/2023
请阅读为什么我不应该 #include < bits/stdc++.h>?,然后永远不要再包含该标头。另请参阅为什么“使用命名空间标准”被认为是不好的做法?这让坏事变得更糟。
1赞 molbdnilo 1/19/2023
@drescherjm 好吧,您可以在函数内部设置...std::fixed

答:

3赞 john 1/19/2023 #1

没有什么可以阻止这一点

float fun(float a)
{
    cout << fixed << setprecision(1);
    return a;
}

但对于一个愚蠢的谜题来说,这是愚蠢的代码。这与实际编程有什么关系?

评论

0赞 user21037758 1/20/2023
@john 谢谢你的回答。实际上,我不知道在返回输出的情况下如何使用setprecision()。此外,这不是愚蠢的代码。我知道这与真正的编程无关。我包含它是为了解决将值为 10 的浮点变量转换为 10.0(带十进制)的问题。这只是为了澄清我的问题。
0赞 user229044 1/20/2023
@user21037758 正如其作者所承认的那样,这是一个可怕的解决方案,您不应该认为您的问题已“解决”。任何人都不应该使用这个代码,你需要重新考虑你的需求,因为它们没有意义。你有一个具有奇怪副作用的函数。现在被打破了,产生了令人惊讶的、不正确的结果,同时也发生了变化。您需要返回格式化的字符串。fun(3); std::cout << 1.23std::cerr << fun(3)coutfun
0赞 john 1/20/2023
@user21037758 您可能会混淆变量的打印方式以及变量的值。该变量的值始终为 10.0,或者换句话说,10.0 和 10 是相同的值。 对变量不做任何操作,也不对函数返回的方式做任何事情。它所做的是更改打印浮点值的方式,并且由于该更改是全局的,因此在函数返回后它仍然有效,asetprecisionaacout