格式化C ++中的计算错误

时间:2014-03-01 20:00:35

标签: c++ math

我需要帮助,因为我有一个C ++程序。它会计算一些正确的小数字。我需要用这种格式_._ _ D _ _

来显示它

但我只知道用这种格式表达_._ _ e _ _

这是一个例子:

fprintf(arxiu,"%1.2f \t %u \t %1.16f \t %1.16f \t %1.2e\n",x,k,resultat,Bessel,error);
5.55e-17

这就是我想要的:

2.22D-16

这是用C ++实现的还是我需要一个比较错误的函数并将其显示为十指数?

感谢。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你需要的只是格式化,那么:

char bf[30];
sprintf(bf, "%1.2f", value);
char *p = strchr(bf, 'e');
if (p) *p = 'D';
fprintf(arxiu, "%s", bf);

它是C而不是C ++,但由于您自己使用fprintf,我认为您可能会发现它很有用。您可能希望将此代码放在一个小函子中以获得可重用性。