将大双数写入txt文件C ++ [重复]

Posted

技术标签:

【中文标题】将大双数写入txt文件C ++ [重复]【英文标题】:write large double number into txt file C++ [duplicate] 【发布时间】:2019-12-14 10:30:14 【问题描述】:

我尝试写一个大的双精度数,这是我的函数将结果生成到 txt 文件(使用 c++)所花费的时间。

例如在我的控制台中,函数取 0.000029(时间单位),当我将值写入我的 txt 文件时,它被转换为:2.9e-05

我的问题:如何在控制台中写入值,即 0.000029?

这是我的代码: *`

clock_t cPrec1=0;
double duration1 =0.0;
clock_t cTime1;

cTime1 = clock();
bool h= check(4, copy);
duration1 = ( cTime1 - cPrec1 ) / (double) CLOCKS_PER_SEC;
cPrec1 = clock();
outfile << space<< 1 << space << duration1<< space <<'\n'  ; 
printf(" saved\n");
`

谢谢你帮助我。

【问题讨论】:

这能回答你的问题吗? C++ Walkthrough cout.setf(ios::fixed); and cout.precision(); How to output float to cout without scientific notation or trailing zeros?, Prevent scientific notation in ostream when using << with double, Turn off scientific notation on float 【参考方案1】:

您可以使用std::setprecision()std::fixed 函数。

当您使用流时,您可以在开头(甚至在双精度数之前)添加 " 来设置点后的数字想看。该函数的参数是一个整数,指定打印的点后面的数字。

另一个有用的函数是 std::fixed,它可以像前面的 on 在流中一样使用(例如 " )。我向你报告函数的定义:

当 floatfield 设置为 fixed 时,浮点值使用定点表示法写入:该值在小数部分中的位数与精度字段 (precision) 指定的位数完全相同,并且没有指数部分。

我还留给你 2 个有用的链接来实现这个功能:

std::setprecision

std::fixed

【讨论】:

非常感谢@zig,它现在可以使用std::fixed【参考方案2】:

用途:

outfile << std::setprecision(7) << duration1

【讨论】:

感谢@Juan,但它对我不起作用!持续时间仍在我的文件 outfile &lt;&lt; space&lt;&lt; 1 &lt;&lt; space &lt;&lt; std::setprecision(5) &lt;&lt; duration1&lt;&lt; space &lt;&lt;'\n' ; 中转换,我使用的是 C++11 @FifaBen 使用std::fixed

以上是关于将大双数写入txt文件C ++ [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 VBA 创建和写入 txt 文件

从 .txt 文件 C 读取时重复最后一个字符串

使用python将俄语字符写入txt文件[重复]

在已经制作的文件中写入数据[重复]

在python中从.txt写入.md [重复]

如何将 unicode 写入 txt? Python [重复]