将大双数写入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 << space<< 1 << space << std::setprecision(5) << duration1<< space <<'\n' ;
中转换,我使用的是 C++11
@FifaBen 使用std::fixed
以上是关于将大双数写入txt文件C ++ [重复]的主要内容,如果未能解决你的问题,请参考以下文章