以非科学计数法打印 float 或 double

Posted

技术标签:

【中文标题】以非科学计数法打印 float 或 double【英文标题】:Print float or double in non scientific notaion 【发布时间】:2013-05-04 04:31:25 【问题描述】:

如果位数为 7 或更多,浮点数或双精度数总是以科学计数法给出答案。就像一个十进制数 10000000.5 它给了 1e-08 一些东西。我想知道我们是否可以在不添加任何新头文件的情况下打印10000000.5

【问题讨论】:

你是如何打印号码的? 我正在尝试使用 cout 进行打印。 【参考方案1】:

如果您要打印到cout,请使用

std::cout.setf( std::ios::fixed, std::ios::floatfield );

See it work.

您可能还希望std::cout.precision(1) 设置小数点后的位数。

【讨论】:

【参考方案2】:

printf("%.1f", someFloat) 应该为您执行此操作,如果您想要一位十进制数字。如果你想要n十进制数字,那么使用%.nf

【讨论】:

要清楚,%nf 中的 n 不是文字 n。如果位数是可变的,可以使用printf("%.*f", n, someFloat) 是的,这只是一个例子......我希望我能够在答案中说清楚......谢谢 谢谢。这个太有用了

以上是关于以非科学计数法打印 float 或 double的主要内容,如果未能解决你的问题,请参考以下文章

以科学计数法打印 cpp_dec_float,不带尾随零

解决GSON转Long型变为科学计数法或整形变double的问题(自动转换成Double类型

将非常小的双精度值转换为字符串(使用科学计数法)(Java)

JAVA中Double,如何才能不显示成科学计数法

Java double 避免科学记数法但保留数据类型

float类型和double类型的二进制存储