关于jsoncpp读取浮点数类型字段
发布时间:2020-12-16 19:09:31 所属栏目:百科 来源:网络整理
导读:环境:VS2010SP1、boost 1.55 strVal = boost::lexical_caststd::string(jsonVal.asDouble()); 上面语句转成的浮点会有变化,得用下面的语句代替 try{Json::Value jsonVal = record[key.c_str()];std::string strVal;if (jsonVal.isString()){strVal = jsonV
环境:VS2010SP1、boost 1.55 strVal = boost::lexical_cast<std::string>(jsonVal.asDouble()); 上面语句转成的浮点会有变化,得用下面的语句代替 try { Json::Value jsonVal = record[key.c_str()]; std::string strVal; if (jsonVal.isString()) { strVal = jsonVal.asString(); } else if (jsonVal.isBool()) { strVal = jsonVal.asBool()==true?"true":"false"; } else if (jsonVal.isDouble()) { char szBuf[MAX_PATH] = {0}; sprintf(szBuf,"%lf",jsonVal.asDouble()); strVal = szBuf; } else if (jsonVal.isInt()) { strVal = boost::lexical_cast<std::string>(jsonVal.asInt()); } else if (jsonVal.isUInt()) { strVal = boost::lexical_cast<std::string>(jsonVal.asUInt()); } mapRec[key.c_str()]=strVal; } catch(boost::bad_lexical_cast &e) { } 再测试,问题解决。猜测是boost::Lexical_cast的问题。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |