gpt4 book ai didi

c++ - 使用指数对大数进行 Double 到 String 的转换

转载 作者:行者123 更新时间:2023-11-30 02:49:26 25 4
gpt4 key购买 nike

我有一个应用程序,我必须在其中处理非常大的数字。应用程序 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,以便我的结果值与应用程序显示的值相匹配。

最佳答案

如果我对您的问题理解正确,您希望小数点后出现 7 位数字。为此,请按如下方式指定精度:

sprintf(buffer, "%.7e", OverallVolume); // buffer contains 1.5356252e+09

Live demo


此外,由于这是标记为 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
}

Live demo

关于c++ - 使用指数对大数进行 Double 到 String 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21179232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com