我有一个应用程序,我必须处理非常大的数字。应用程序API给我编号,然后我必须将其转换为字符串并发送到进一步处理。 代码收到号码为 - 1535625179.1619387
然后转换我用 -
char buffer[255];
sprintf(buffer, "%e", OverallVolume); //OverallVolume has the above value.
现在这里缓冲变量返回1.535625e + 009,标准化为1535625000.00 但我的应用程序显示值为1.5356252e + 09,标准化为1535625200.00
所以我想问一下我应该使用什么方法将Double转换为String,以便我的结果值与应用程序显示的值匹配。
答案 0 :(得分:3)
如果我正确理解您的问题,您希望在小数点后面显示7位数字。为此,请按如下方式指定精度:
sprintf(buffer, "%.7e", OverallVolume); // buffer contains 1.5356252e+09
此外,由于这是标记的C ++,这是一个使用IO流的版本,打印相同的结果。
#include <ios>
#include <iomanip>
#include <iostream>
#include <sstream>
int main()
{
double OverallVolume = 1535625179.1619387;
std::ostringstream ss;
ss << std::scientific << std::setprecision(7) << OverallVolume;
std::cout << ss.str() << '\n'; // prints 1.5356252e+09
}