C ++将字符串精确转换为双精度

道奇蓝

我需要将字符串转换为精度最高为15位的双精度数字

我已经阅读了许多文章和类似的问题,他们建议在将数字打印到屏幕上时使用setprecision(15)。

例如:

string line = "34.9438553";
double lon1 = strtod(line.c_str(),NULL);

如果我写

cout << lon1;

它只会打印34.9439而不是34.9438553

我可以写

cout << setprecision(15) << lon1;

并且它可以工作,但是我需要变量lon1本身具有15位精度,因为我需要变量内的所有数字,而不仅是在将其打印到屏幕上时。

有人知道怎么做吗?

艾略特·罗宾逊(Elliot Robinson)

setprecision设置打印的精度,而不是双精度。strtod读取double值至double值或字符串中可用精度的最小值(在这种情况下,以字符串为界)。

简而言之,lon1通过使用,您已经拥有了字符串的全部精度strtod

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C#将货币字符串转换为双精度

使用C#从Excel读取值将双精度转换为字符串

C#如何将双精度型转换为带指数符号的字符串

在没有C ++的情况下将字符串转换为双精度

试图将字符串转换为双C#?

将奇怪的字符串转换为双 C++

如何将双精度值转换为字符串而不丢失c#中的数据

如何在C#中的枚举结构内将双精度型转换为字符串

C#如何将双精度数转换为带小数点和千位的字符串

C#将字符串转换为双精度/十进制并返回字符串,保持尾随零,为数千添加逗号

如何在C ++中将双精度型转换为字符串?

尝试在 C++ 中将字符串转换为双精度时遇到分段错误

c#中的计算并将字符串转换为双精度

C#在转换为字符串时如何防止双精度值截断

C++ 如何将字符串字符转换为精确的十六进制字节

字符串到双精度转换C ++

C#如何精确地将双精度转换为十进制?

从双精度转换为字符串,而无需在C#中进行四舍五入

在C ++中使用atof将带有十进制的字符串转换为双精度

使用从 .csv 文件(stod、strtod、atof)中提取的数据在 C++ 中将字符串转换为双精度

在C ++中对数字数组进行排序时是否必须将字符串转换为双精度?

C#:将字符串从数组转换为双wih点分隔符

将字符串转换为双精度-失去精度

如何将浮点数转换为字符串而不会丢失用户在 C 中输入的精度?

C#:将字符列表转换为字符串

C#中的奇怪行为:将字符串解析为双精度错误

将混合字符串转换为双精度

jsoncpp:将字符串转换为双精度

将字符串用'%'转换为双精度