我试图从一个 JSON 对象中获取一个我知道代表十进制的字符串,并将其分配给 C++ 中的双精度值。
人们会期望这样asDouble()
做可以,但事实并非如此。例如,如果我们将数组["0.4983", "4387"]
放在一个变量中Json::Value arr
,则执行
double x = arr[0].asDouble()
抛出异常 Value is not convertible to double.
这样做的推荐方法是什么(在 C++ 11 中)?
我的猜测是这"0.4983"
是一个字符串,因此 jsoncpp 拒绝将其转换为双精度值。这是合理的,因为通常将字符串"abc"
转换为 double 是没有意义的。
您需要的是手动将字符串转换为双精度;在 C++11 中,它是stod。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句