gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-27 22:52:45 24 4
gpt4 key购买 nike

如何在 C++ 中将字符串转换为具有指定精度的 double 代码片段如下:

  double value;
CString thestring(_T("1234567890123.4"));
value = _tcstod(thestring,NULL);

The value is coming as this:1234567890123.3999
expected value is:1234567890123.4

最佳答案

基本上,您可以使用 strtodstd::stod 进行转换,然后四舍五入到您想要的精度。对于实际的舍入,网络搜索将提供大量代码示例。

但细节比您想象的要复杂:字符串(可能)是数字的十进制表示,而 double 是二进制。我猜您想四舍五入到指定的小数位数。问题是大多数十进制浮点十进制数不能用二进制精确表示。即使是像 0.1 这样的数字也是不可能的。

您还需要定义您感兴趣的精度类型。是总位数(相对精度)还是小数点后的位数(绝对精度)。

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

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