首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C++中显示尾数设置为零的浮点数?

如何在C++中显示尾数设置为零的浮点数?
EN

Stack Overflow用户
提问于 2009-10-18 15:49:32
回答 1查看 750关注 0票数 1

下面的代码以科学记数法显示浮点数:

代码语言:javascript
复制
float foo = 1.0;
::cout::setf(::std::ios::scientific);
::std::cout << foo;

它会生成以下输出:

代码语言:javascript
复制
1.000000e-000

我想要做的是以特定的表示法显示浮点数,这种表示法类似于科学表示法,但尾数设置为零。使用与上面相同的浮点数,它将产生:

代码语言:javascript
复制
0.100000e+001

在C中,我相信它会是这样写的:

代码语言:javascript
复制
printf("%.6E", foo);

更新:嗯,实际上我也不知道用C语言怎么做。Update2:使用iostream格式的示例不正确。我根据Michael Burr的评论对其进行了修改。

EN

回答 1

Stack Overflow用户

发布于 2009-10-19 03:42:47

如果你想在ostreams中做到这一点,我认为你需要使用"facets“。C++的这一鲜为人知的部分让您可以随心所欲地控制格式。

这是对num_put的描述,它是以您不喜欢的方式格式化数字的:http://www.cplusplus.com/reference/std/locale/num_put/

您需要为您的ostream (字面意思是ostr.imbue())“注入”一个包含您将创建的facet的语言环境,以便以您想要的方式格式化数字。

我建议从编写一个函数开始,使用您想要的格式将数字转换为字符串。一旦你有了它,如果你想全力以赴,去做场所和方面的事情,你可以(或者你会认为它太复杂了,这是大多数人最终会做的)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1585222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档