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

比较stl库的ostringstream与Qt的QString::arg(),QString::number()

需求:

显示一个float或者double类型的数,要求小数点后的数字位数为定值。

考虑STL库的ostringstream或者Qt的QString::arg(), number

对于stringstream,使用比较繁琐,要联合使用std::fixed和std::setprecision才能实现固定小数位数显示,qstring则要简单一些。看示例:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <sstream>
#include <iomanip>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    double d = 211.23;
    std::ostringstream oss;
    oss<<std::fixed<<std::setprecision(6)<<d;
    ui->lineEdit->setText(QString::fromStdString(oss.str()));

    ui->lineEdit_2->setText(QString("%1").arg(d, 0, 'f', 6));

    ui->lineEdit_3->setText(QString::number(d, 'f', 6));
}

MainWindow::~MainWindow()
{
    delete ui;
}

效果:

注意,使用qstring的时候,不论使用arg还是number,format输入参数都必须是'f',不能用'g',否则可能无法获得理想的效果。


http://www.kler.cn/a/300286.html

相关文章:

  • 函数递归的介绍
  • 使用 HTML 开发 Portal 页全解析
  • ChatGPT被曝存在爬虫漏洞,OpenAI未公开承认
  • 最大矩阵面积问题
  • 解决leetcode第3426题所有安放棋子方案的曼哈顿距离
  • boss直聘 __zp_stoken__ 分析
  • Transformer理论阶段
  • Unet改进31:添加Star_Block(2024最新改进方法)|紧凑的网络结构和高效的运算
  • 全国各地身份证号开头6位数字及地区对照表
  • 代码随想录Day39|322. 零钱兑换、279.完全平方数、139.单词拆分
  • Kubectl:Kubernetes 的强大命令行工具
  • C++的智能指针
  • 通过ASCII码打印HelloWorld(花式打印HelloWorld)
  • 应用宝自动下载安装
  • 如何下载和安装 Notepad++
  • 【数据库】MySQL表的Updata(更新)和Delete(删除)操作
  • Spring 框架——@Retryable 注解与 @Recover 注解
  • 【delphi】判断多显示器下,程序在那个显示器中
  • C++day7
  • python 实现gaussian高斯算法
  • Vuex快速入门
  • mysql等相关面试题
  • Sentinel实时监控不展示问题
  • kali2023安装docker
  • SprinBoot+Vue老年医疗保健网站的设计与实现
  • 使用ffmpeg在视频中绘制矩形区域