【发布时间】:2014-02-28 10:22:24
【问题描述】:
我得到了一些小的浮点数,它们应该附加到文件名中。然后这些文件将显示在监控网站上。这样,人们可以仅通过文件名对实验运行有一个简要的印象。 一个典型的小数(真空压力的值)是:
1.2528168904794602e-07.
在 C/C++ 中,我希望它可以被截断为像这样的科学数字
1.3e-07
这个 1.3e-07 将是文件名的一部分。
我不想在屏幕上打印值。因此,可能无法选择使用以下 iostream 命令。
std::cout.precision(2);
有什么建议吗?谢谢!
【问题讨论】:
-
如果您不显示该值,您在用它做什么?显示有效数字和科学格式仅在实际显示值时使用,仅存储值没有意义。
-
好吧,我认为 std::io 有一个标志 (
setiosflags(ios::scientific)) 结合可以工作的精度。无论如何,您还可以将“流式传输到字符串中”以将该值存储为文件名的一部分 -
您可以将值的二进制表示的适当位归零。似乎是个坏主意,但它应该可以完美地工作,因为浮点类型遵循 IEEE754 标准:)
标签: c++ truncation