当前位置: 首页 > news >正文

广州制作网站网站开发 定制 合同 模板

广州制作网站,网站开发 定制 合同 模板,集团公司网页设计,网站界面设计实验报告我们在Qt中使用Json都是使用QJsonDocument、QJsonArray、QJsonObject、QJsonValue等类。 当我们在QJsonObject中插入浮点数字段时&#xff0c;会发现浮点数的小数位数很长&#xff0c;如下所示&#xff1a; #include <QJsonDocument> #include <QJsonArray> #incl…

我们在Qt中使用Json都是使用QJsonDocument、QJsonArray、QJsonObject、QJsonValue等类。
当我们在QJsonObject中插入浮点数字段时,会发现浮点数的小数位数很长,如下所示:

#include <QJsonDocument>
#include <QJsonArray>
#include <QJsonObject>
#include <QJsonParseError>
#include <QJsonValue>QJsonObject jo;
float v = 0.12132222111222;
ji.Insert("name", v);//然后转成Json字符串
QJsonDocument doc(jo);
QString str = doc.toJson(QJsonDocument::Compact);qDebug() << str.toStdString().c_str();
//以上代码会输出:
//{"name":0.12132222111222}

可见,QJsonObject没有对浮点数做任何的精度控制,其小数点后原来多少位,转为Json后还是多少位。

通常我们不需要在json字符串中记录显示这么长的浮点数。
有一种办法是将浮点数作为字符串插入json,代码如下:

QJsonObject jo;
float v = 0.12132222111222;
QString vs = QString::number(v, 'f', 2);
ji.Insert("name", vs);//然后转成Json字符串
QJsonDocument doc(jo);
QString str = doc.toJson(QJsonDocument::Compact);qDebug() << str.toStdString().c_str();
//以上代码会输出:
//{"name":"0.12"}

可见浮点数的精度控制在2位了,但是,浮点数被多出来的一对引号(")包裹了,这实际上是把浮点数类型转为字符串类型处理了,这并不是我们想要的。
如果要直接插入精度可控制的浮点数怎么办呢?方法就是,通过QString将浮点数格式化为目的精度的浮点数字符串,然后将浮点数字符串再转回浮点数,最后插入QJsonObject。代码如下:

QJsonObject jo;
float v = 0.12132222111222;
QString vs = QString::number(v, 'f', 2);
double vd = vs.toDouble();
QJsonValue jv(vd);
ji.Insert("name", jv);//然后转成Json字符串
QJsonDocument doc(jo);
QString str = doc.toJson(QJsonDocument::Compact);qDebug() << str.toStdString().c_str();
//以上代码会输出:
//{"name": 0.12}

从输出结果可见,烦人的引号(“)消失了,目的达到了。
需要注意的是,以上代码有一个坑要注意:

//这里一定是double类型和toDouble()函数
double vd = vs.toDouble();//绝对不能是如下float或者toFLoat()函数
float vd = vs.toDouble();
double vd = vs.toFloat();
float vd = vs.toFloat();

不管是出现以上三种中哪一种错误,都会导致精度控制失效。

http://www.yayakq.cn/news/195135/

相关文章:

  • 绍兴网站开发08keji机关网站建设建议
  • 芜湖做网站建设公司龙岩微信网站建设
  • 遂宁网站建设略奥网络福建建设工程信息网官网查询
  • 渭南网站建设服务开网站需要什么流程
  • 站内免费推广的方式有哪些财务公司代理记账业务
  • 商业网站设计与制作论文关于网页制作的毕业设计
  • 全新正版营销网站宁波正规seo快速排名公司
  • 购物网站建立mysql进程太多wordpress
  • 佛山用户网站建站如何做网站路径分析
  • 安徽建设银行招聘网站搜索点击软件
  • 网站建设图片教程视频教程wordpress开发cms
  • 网上那些彩票网站可以自己做吗什么是网站后台
  • 2w网站建设模式如何做好网站站内优化
  • 个人网站 用什么域名小型企业oa办公系统
  • 邵阳做网站的有哪些学做预算有网站吗
  • 用模块做网站用asp做的大型网站
  • 广州网站建设知名乐云seo公司 网站建设
  • xx汽车企业网站和信息化建设土特产网站平台建设
  • 新加坡的网站域名谷歌三件套一键安装
  • 怎样查网站有没有做CDN加速外贸公司网站大全
  • 工商注册网站模板wordpress换行不显示
  • 最世网络建设网站可以吗长春有几个区
  • 商城网站制作公司地址微信公众号对接wordpress教程
  • 百度权重查询爱站网网站开发页面设计报价
  • 怎么用程序做网站网站推广对接
  • 教育培训机构网站源码貴阳建设银行网站
  • 宁波企业网站制作推荐搭建网页平台
  • 济南网站推广网站建设公司论坛
  • 甘肃省住房和城乡建设厅注册中心网站首页常州比较有名的设计公司
  • 建设大学网站费用免费网站奖励自己游戏