gpt4 book ai didi

c++ - 如何在 C++ 中将字符串转换为具有 6 位精度的 double ?

转载 作者:太空宇宙 更新时间:2023-11-04 15:48:56 30 4
gpt4 key购买 nike

我想知道如何将像 "1234.123456" 这样的字符串转换为 doublefloat。我需要至少 3 位数的精度(即小数点后 3 位数,无论小数点前的位数是多少)。

最佳答案

确切的值 1234.123456 不能用任何通常的方式表示机器浮点格式。你所能做的就是选择多少你需要的准确性,并使用它。 (在大多数现代机器上,double 有16 位精度。但这仍然并不意味着所有 16 位数字值是完全可以表示的。)

至于转换,只要做你想做的任何类型的转换:

std::istringstream s( "1234.123456" );
double d;
s >> d;

阅读 http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html。它会解释为了安全使用您需要知道的基本最低限度机器 float 。

关于c++ - 如何在 C++ 中将字符串转换为具有 6 位精度的 double ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11948540/

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