QString设置小数点精度位数

这篇具有很好参考价值的文章主要介绍了QString设置小数点精度位数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


QString 转double,double转QString 中的小数点问题

Chapter1 QString设置小数点精度位数

原文链接:https://blog.csdn.net/xxzhaoming/article/details/130364751

在Qt中,我们可以使用QString::number()函数将float类型转换为QString类型以便在界面上显示。该函数默认显示6位小数,但我们也可以通过设置第二个参数来控制小数点位数。

以下是示例代码,将float类型的变量num转换为QString类型,保留2位小数:

float num = 3.1415926;
QString str = QString::number(num, 'f', 2);

在上面的代码中,参数’f’表示将数值格式化为浮点数,2表示保留2位小数。

Chapter2 Qt中QString.toDouble有效位数6位问题以及数据小数点有效位数的处理

原文链接:https://blog.csdn.net/nichimgp/article/details/129301059

问题一:QString.toDouble有效位只有6位

  QString sVal="1234.5678";
  double dVal=sVal.toDouble();
  qDebug()<<"字符串转 double:"<<<<dVal<<endl; //输出结果:1234.57 此处Qt打印输出只会保留6位数字
  qDebug()<<"字符串转 double:"<<qSetRealNumberPrecision(10)<<dVal<<endl;//输出结果为1234.5678
 
//但假如让dVal写入数据库(QSqlite),写入的值仍是1234.57,有说法是因为对数据库来说,所有的数据都是打印的字符文本,所以会按照默认打印结果保存。
//有开发需求,尤其是精度需求,保险还是用String来保存。反正从数据库中拿到的任何数据都可以直接toString()/toDouble()

问题二:小数点有效位数的问题

Qt的浮点数计算,四舍五入保留都比较麻烦。尤其是int 1234567想转为double 123.4567。因为Qt又默认只保存前6位,所以数据就是123.457。所以对精度要求高的话,就不要直接1234567/10000.用除法。可以用字符串拼接的方法:

  //需求:保留4位小数
    //Index是要除以10000转double的值
    quint32 Integer=Index/10000;
    quint32 decimal=Index%10000;
    QString sVal=QString("%1.%2").arg(Integer).arg(decimal);
   //此处会有新问题,假如index%1000=567,那么数据就是123.567 此处真实值应该是123.0567)
   //下面可以解决:
    QString sVal=QString("%1.%2").arg(Integer).arg(decimal,4, 10, QLatin1Char('0'));//前位补0
   //4-小数点有效位数 10-进制 前位补0

Chapter3 qt QString转Double只显示6位数字的问题(精度丢失)

QString使用toDoouble转化double类型,其实精度没有丢失,只是我们使用qDebug打印时出了问题。qDebug它对于double类型只显示6位数字。
如果想要打印所以数字,方法如下:

QString val = 123.456789;
qDebug()<<qSetRealNumberPrecision(10)<<val.toDouble();

且double转QString精度丢失解决方法:

double num = 123.0456789;
QString val = QString::number(num,'f',8);

QString设置小数点精度位数,Qt经验总结,工控软件,数据库,qt文章来源地址https://www.toymoban.com/news/detail-767739.html

到了这里,关于QString设置小数点精度位数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Matlab保留小数点后两位

    Matlab保留小数点后两位 在Matlab中,我们经常需要处理数值数据,并在输出结果时保留特定的小数位数。本文将演示如何使用Matlab来保留小数点后两位。 首先,让我们看一个简单的例子。假设我们有一个数值变量x,其值为3.14159265359。我们希望将其保留两位小数并输出。 在上

    2024年02月05日
    浏览(46)
  • Java中三种保留小数点的方法

    方法一:使用BigDecimal格式化小数点 结果 方法二: 使用Math工具中的取整方法,可用于浮点数取整,只看浮点数的小数位是何值来判断. 结果展示: 方法三: 使用DecimalFormat数据格式化方式. 结果展示:

    2024年02月11日
    浏览(46)
  • python保留小数点后几位的方法

    方法一:使用字符串格式化 注意:使用字符串格式化后的是字符串格式 输出 方法二:使用round内置函数 注意:使用round后的是浮点数格式 输出 输出

    2024年02月05日
    浏览(43)
  • 在 JavaScript 中,保留小数点后两位的方法

    在 JavaScript 中,有多种方法可以保留小数点后两位。以下是其中的一些方法: 1. toFixed() 方法:该方法将数字转换为字符串,并保留指定的小数位数。 2. Math.round() 方法:该方法将数字四舍五入到指定的小数位数。  3. parseFloat() 和正则表达式:该方法将字符串转换为数字,并

    2024年02月12日
    浏览(37)
  • laravel 图表Apexchart 整数多出小数点

    Apexchart做统计界面发现一个问题,数据全是整数,但是还显示小数点,如下图:  网上很少有答案,自己研究了很久,分享下经验 第一种方案重新buildDefaultScript方法    第2种方案: 在图表配置加入可执行的 JS 代码 可以自己封装一个方法继承Chat 然后在调用 改写后效果如下

    2024年02月06日
    浏览(33)
  • chatgpt赋能python:Python去掉小数点的方法

    在Python编程中,经常会遇到需要去掉小数点的情况,比如输出整数等。本文将介绍常用的几种方法。 将浮点数转换为整数是最简单的方法之一,使用内置函数int()即可。 但需要注意的是,使用这种方法会直接截断小数部分,可能会导致精度损失。 使用内置函数round()可以对浮

    2024年02月11日
    浏览(41)
  • java BigDecimal使用(小数点,字符串等转换)

    Java中提供了操作大数字(超过 16位 有效位)的类, 即 java.math.BigInteger 类和 java.math.BigDecimal 类,用于高精度计算。 float和Double只能用来做科学计算、工程计算等;在商业计算中,对数字精度要求较高(例如货币值),必须使用 BigInteger 类和 BigDecimal 类,它支持任何精度的定点数,

    2024年02月14日
    浏览(39)
  • Java数字字符串去除小数点后末尾多余的0

    需求说明: 数字字符串去除小数点后末尾多余的0 如果字符串为空返回0,非数字则返回原字符串** 方法一(使用BigDecimal): 方法二(使用Float.parseFloat): 引用方法静态方法DecimalInputText :

    2024年02月11日
    浏览(82)
  • 【iOS】UITextField中的输入检测——限制只能输入数字和小数点

    最近趁着放假时间,在看The Big Nerd Ranch的iOS编程,想着重新复习一遍iOS开发的基础知识 书中第四章有一个温度转换的app实现,整体实现并不难 其中有个问题—— 如何利用 UITextFieldDelegate 委托限制 UITextField 的输入 UITextFieldDelegate 里面有个函数 简单来说,就是通过这个函数处

    2024年01月20日
    浏览(42)
  • 【正则】正则表达式 只能输入正整数 或 只能输入数字和小数点

    正数的正则表达式(包括0,小数保留两位): 正数的正则表达式(不包括0,小数保留两位): 正整数的正则表达式(包括0): 正整数的正则表达式(不包括0):

    2024年02月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包