关于jsoncpp读取浮点数类型字段
2015-02-05 08:52
267 查看
环境: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的问题。
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的问题。
相关文章推荐
- 关于Java读取mysql中date类型字段默认值'0000-00-00'的问题
- 关于mybatis读取数据库字段text类型时,读出数据为地址,并不是字符串的问题
- 关于Java读取mysql中date类型字段默认值'0000-00-00'的问题
- 关于C++读取mysql字段获取得到的类型
- 关于Java读取mysql中date类型字段默认值'0000-00-00'的问题
- 从Excel中读取数据,关于一列数据包含多种数据类型的问题
- 读取sql server表的字段名,字段类型,字段长度,字段属性描述的sql语句
- 关于解决从F1BOOK中读取时间类型的数据的方法
- 有关读取SQL里TEXT和NTEXT类型字段内容的问题
- 有关读取SQL数据库里TEXT和NTEXT类型字段内容的问题
- Java 存储和读取 oracle CLOB 类型字段
- 关于SQLServer的字段类型-技术需要与时俱进
- 关于数据库设计字段类型和长度的讨论
- 如何将图片以Image类型存储到数据库 (asp.net) 如何从数据库中读取Image类型的字段(asp.net)
- POI读取EXCEL时如何判断字段类型
- 关于Qt读取db2的中clob字段失败原因
- 关于SQL导出到EXCEL的字段类型对应
- 读取Excel文件时字段类型的问题
- *关于如何获取指定表的指定字段的数据类型的方法
- 读取sql server表的字段名,字段类型,字段长度,字段属性描述的sql语句