gpt4 book ai didi

c++ - 将字符串格式化为科学记数法

转载 作者:可可西里 更新时间:2023-11-01 17:03:58 26 4
gpt4 key购买 nike

我有一个看起来像这样的字符串:

"0.4794255386042030002732879352156"

大约是 sin(0.5)。我想格式化字符串以使其看起来更好

"4.794255386042e-1"

我怎样才能做到这一点?请记住,我正在处理字符串而不是数字( float 、 double )。我还需要四舍五入以尽可能准确地保持数字,我不能只是截断。如果我需要转换为不同的数据类型,我更喜欢 long double,因为普通的 double 没有足够的精度。四舍五入前我想要至少 12 位小数。也许我可以做一个简单的 sprintf() 转换。

最佳答案

像这样:

#include<iostream>
using namespace std;

int main()
{
char *s = "0.4794255386042030002732879352156";
double d;

sscanf(s,"%lf",&d);
printf("%.12e\n",d);

return EXIT_SUCCESS;
}

输出:

# g++ a.cpp  && ./a.out
4.794255386042e-01

关于c++ - 将字符串格式化为科学记数法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1976453/

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