QString::number()

第五章 常用类 Qt中常用的类 阅读详情
AI摘要

这篇博客介绍了Qt库中QString::number方法的使用,包括如何将不同类型的数字转换为QString。通过示例展示了整数和浮点数的转换,以及如何设置小数位数和进制。此外,还提及了保留特定位数的技巧,如使用sprintf或arg函数进行格式化输出。

1.写在前面

Qt提供非常多使用的工具类,如排序、类型转换、格式转换等。如果是经常使用则信手拈来,否则间隔时间长了,很基础的工具类都需要查看文档或者百度。所以做个言简意赅的记录笔记,增加印象同时方便查阅。

2.QString::number

QString::number是将数数字(整数、浮点数、有符号、无符号等)转换为QString类型,常用于UI数据显示。查看API接口,number提供如下几种类型的转换,适合各种场合调用。

static QString number(int, int base=10);
static QString number(uint, int base=10);
static QString number(long, int base=10);
static QString number(ulong, int base=10);
static QString number(qlonglong, int base=10);
static QString number(qulonglong, int base=10);
static QString number(double, char f='g', int prec=6);

第一个参数:待转换数字

第二个参数(整型):转换进制

第二个参数(浮点数):浮点数格式

第三个参数(浮点数):保留小数位数

默认情况下是十进制显示方式转换,也可以使用八进制、十六进制显示方式调用。

3.QString::number 整数转换

int a = 20;
uint b =255;
QString::number(a);
QString::number(a,10);
QString::number(b);
QString::number(b,16);

结果:“20”,“20”,“255”,“ff”。

4.QString::number 浮点数转换

1)保留2位小数

float a;
QString::number(a,‘f’, 2);  

例如:

1.234,结果:1.23

1,结果:1.00

2)保留2位有效数字,以简单方式表示,或者科学计数法表示

float a;
QString::number(a, ‘g’, 2); 

例如:

0.00001,结果:1e-5

0.00012,结果:1.2e-4

1.23,结果:1.2

3)保留指定位数(如001)

整数转换为字符串,并保留3位,不足在前面补0,这一块其实属于“sprintf”格式函数的范畴:

int a=1;
QString str=QString::number(a).sprintf("%03d",a);
//或者
QString str=QString("%1").arg(a, 3, 10, QChar('0'));
【Qt】深入解析QString的arg()与number()格式化技巧 本文深入解析Qt框架中QString的arg()与number()方法,详细介绍字符串和数字格式化的高级技巧。通过实际代码示例展示如何利用arg()实现占位符替换、字段对齐等操作,以及使用number()处理各种数字格式转换,帮助开发者编写更高效、可读性更强的Qt代码。 阅读详情

相关推荐

Qt开发必备:QString的arg()和number()格式化参数全解析(附代码示例)

本文深入解析了Qt开发中QString类的arg()和number()格式化方法,涵盖基础替换、字段控制、进制转换及性能优化等高级技巧。通过丰富的代码示例,展示了如何在日志系统、UI显示等实际场景中高效应用,帮助开发者编写更简洁、健壮且高性能的Qt代码。

weixin_29016833的博客 390

QString

asprintf 从格式字符串cformat和任意参数列表安全地构建格式化字符串 m_labCellPos->setText(QString::asprintf(“当前单元格:%d行, %d列”, current.row(), current.column()));

qq_36314864的博客 2331

在 Qt 中如何将数字转换为QString

在Qt中,将数字转换为QString是非常直接的。QString类提供了几个静态方法来执行这种转换。

程序猿视角 2843

QString类—number

1、写在前面Qt提供非常多使用的工具类,如排序、类型转换、格式转换等。如果是经常使用则信手拈来,否则间隔时间长了,很基础的工具类都需要查看文档或者百度。所以做个言简意赅的记录笔记,增加印象同时方便查阅。2、QString::numberQString::number是将数数字(整数、浮点数、有符号、无符号等)转换为QString类型,常用于UI数据显示。查看API接口,number提供如下几种类型...

只要思想不滑坡,想法总比问题多。 4万+

qstring::number的使用

近期进行Qt的一些编程的时候出现格式的Qstring的格式问题 小数点后的位数 如下 QString::number(value,'f',3) 这个是小数点后有三位 float型。后面用到的比较多 ...

道亦无名 2万+

QString::number()相关转换

文章介绍 Qt提供非常多使用的工具类,如排序、类型转换、格式转换等。很基础的工具类都需要查看文档或者百度。做个记录笔记,增加印象同时方便查阅。 函数重载: QString QString::number(long n, int base = 10) 返回一个包含该字符串的n个字符的字符串,从指定的位置索引开始。 如果位置索引超过字符串长度,则返回空字符串。如果从给定位置开始的字符串中可用的字符少于n个,或者如果n为-1(默认),函数将返回从指定位置开始的所有可用字符。 //16进制 long a = 63

轩宇的博客 4799

Qt: QString::number()

是 Qt 中用于将数值类型转换为字符串的强大工具,支持多种数值类型和进制转换。通过掌握其不同的重载形式和参数设置,开发者可以灵活地在应用中展示和处理数值数据。无论是简单的十进制转换,还是复杂的多进制或格式化需求,都能提供高效且可靠的解决方案。支持多种数值类型(整数、浮点数)。允许指定进制(2-36)用于整数类型。提供浮点数格式化选项('e''f''g')及精度控制。可通过toUpper()或toLower()调整字母大小写。需要注意参数范围和数值类型的边界情况。通过合理使用。

m0_71489826的博客 3774

给麒麟KylinOS服务器加把锁:手把手配置符合等保要求的密码强度策略

本文详细介绍了如何在麒麟KylinOS服务器上配置符合等保要求的密码强度策略,包括pwquality.conf和login.defs的核心参数设置、等保合规的进阶配置技巧以及企业环境中的平衡艺术。通过实战案例和测试方法,帮助管理员构建坚固的密码防线,确保系统安全。

weixin_33749242的博客 419

Qt字符串格式化实战:QString::arg()与number()详解

字符串格式化是编程中处理动态数据嵌入的基础技术,通过占位符替换和数值转换实现安全可控的文本生成。在Qt框架中,QString::arg()和QString::number()是核心工具,前者负责占位符替换与宽度对齐,后者处理进制转换与浮点精度控制。合理使用这些函数能提升代码可读性,避免类型陷阱和性能问题,广泛应用于日志输出、界面显示、数据包展示等场景。本文深入解析这两个函数的参数机制、常见坑点及组合实战,帮助开发者掌握高效、安全的字符串格式化方法。

weixin_30522983的博客 281

别再只会按按钮了!用NanoStat开源项目学ESP32硬件设计:BOOT与自动下载电路的避坑指南

本文通过NanoStat开源项目深入解析ESP32硬件设计中BOOT与自动下载电路的关键技术。从启动机制、电路设计陷阱到三极管选型,提供了一套完整的避坑指南和优化方案,帮助开发者提升设计可靠性和烧录效率。特别适合中级开发者学习ESP32硬件设计的精髓。

weixin_30296405的博客 439

基于GPU的GEMM矩阵相乘运算优化

从上图中我们可以看到三种处理方法。第一种是将A和B矩阵分块,第二种方法是将C和B矩阵分块,第三种方法是将C和A矩阵分块。GEMM的子任务是GEPP或GEMP;最小粒度的任务是GEBP或GEPB或点乘。

weixin_55035144的博客 2155

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

对于stringstream,使用比较繁琐,要联合使用std::fixed和std::setprecision才能实现固定小数位数显示,qstring则要简单一些。注意,使用qstring的时候,不论使用arg还是number,format输入参数都必须是'f',不能用'g',否则可能无法获得理想的效果。考虑STL库的ostringstream或者Qt的QString::arg(), number。显示一个float或者double类型的数,要求小数点后的数字位数为定值。

liji_digital的博客 585

多边形裁剪算法

多边形裁剪算法 刚参加工作就跟多边形刚上了,对于多边形的裁剪做一些简单的总结。 多边形裁剪主要有四种算法 Greiner-Hormann裁剪算法 Sutherland-Hodgman算法 Vatti裁剪算法 Weiler-Atherton裁剪算法 作为一名想要成为优秀算法工程师的程序员,我们不能只会使用,而不知道其原理,倘若如此,我们无法做到应用于本身业务上的定制化的修改。 Greiner–H...

papalqi 6729

qt中的QString::number()的精度使用问题

1、 QString::number(average, 'f', 5),这里的'f'表示的是:‘f’方式结果是0.00,所以后面的5表示的就是输出的时候保留5位小数 2、这种的QString::number(average, ‘g’, 3); ,这里的'g'表示的是:’g’方式结果是1e-06,输出的时候保留3位小数 3、QString::trimmed()函数:移除字符串两端的空白符...

Littlehero_121的博客 1万+

语言随机效应模型_线性混合效应模型 VS 方差分析

线性混合效应模型相比方差分析具有很多优点。为了让大家更直观的了解,我们来做一下两者的对比。基于模拟的方法,生成了以下数据dat_sim:这种数据格式是长格式,也就是从实验软件导出来的那种数据格式。这种数据格式可以直接使用线性混合效应模型进行分析。该实验设计是被试内项目间的单因素两水平设计。category是自变量,两个水平分别是outgroup和ingroup,outgroup比ingr...

weixin_31960565的博客 2688

26届数字IC秋招笔试面试全攻略 - CPU基础架构-数字IC设计专家

本文介绍了CPU基础架构的三大关键技术:流水线、冒险处理和指令集设计。首先解析了经典五级流水线结构(取指、译码、执行、访存、写回)及其性能指标。其次详细阐述了三种流水线冒险(数据、控制、结构)及解决方案,如数据前递、分支预测等。最后对比了RISC与CISC指令集特点,并以RISC-V为例说明指令格式设计原则。全文系统梳理了CPU核心架构知识,为数字IC设计提供重要参考。

2301_79143213的博客 930

Qt开发之路——整型与字符串 int与QString互转

( 1)QString转int 直接调用toInt()函数 例: QString str(“100”); int tmp = str.toInt(); 或者: bool ok; QString str(“100”); int tmp = str.toInt(&ok); 注:ok表示转换是否成功,成功则ok为true,失败则ok为false。 2)int转QString QString::number(); 例: int tmp = 100; QString str = QString::number

程序猿进化梯 6820

【AI智能体】Coze 搭建个人旅游规划助手实战详解

Coze 制作旅游规划助手机器人实战详解

congge 4606

Qt 整型与字符串 int与QString互转

( 1)QString转int 直接调用toInt()函数 例: QString str("100"); int tmp = str.toInt();   或者: bool ok; QString str("100"); int tmp = str.toInt(&ok); 注:ok表示转换是否成功,成功则ok为true,失败则ok为false。 2)int转QStri...

Z-VegetableBird的博客 1万+

基于投影法实现扫描文件的光学字符分割——Matlab实现

投影法是指将原图像沿着某个特定的方向进行投影,得到投影线上的像素点的个数或像素值总和,从而可以得到该方向上物体的轮廓信息。对于字符分割,我们可以将图像进行水平和垂直两个方向的投影,从而得到字符之间的分割线。在OCR技术中,字符分割是非常重要的一步骤,因为字符之间的分割对字符识别的准确性有很大的影响。通过对投影值的判断,可以求出字符之间的分割线,这里我们根据垂直方向上的投影值进行判断,选取一个阈值进行筛选即可。使用sum()函数分别计算出水平和垂直方向上的投影值,得到每一行和每一列的投影值。

TechGlide的博客 581

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

QString 与 int直接的转换

1)QString转int 直接调用toInt()函数 QString str = “100”; int tmp = str.toInt(); 2)int转QString 直接调用QString::number()方法就ok; 例: int tmp = 100; QString str = QString::number(tmp);...

酒庄熊人胆 4万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Qt::QString::number()设置小数保存位数,QTableWidgetItem 取出 自定义data

1、QString::number设置小数保存位数 原型: 可指定格式和保存精度 例如: QString::number(strDouble, 'f', 4);//保存为浮点型,4位小数 格式有以下几种: 2、QTableWidgetItem 使用 setData 保存自定义数据并取出 setData()方法原型: 使用示例: MyClass myClass; QTableWidgetItem * item = new QTableWidgetItem(myCl..

kllo__的博客 5092

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Qt中 QString 和int,double等的转换

Qt中 int ,float ,double转换为QString有两种方法1.使用QString::number(); 如:long a = 63; QString s = QString::number(a, 10); // s == "63" QString t = QString::number(a, 16).toUpper(); // t == "3

Mr.Phoebe的专栏 4万+

Qt5学习记录:QString与int值互相转换

1)QString转int 直接调用toInt()函数 例: QString str("100"); int tmp = str.toInt(); 或者: bool ok; QString str("100"); int tmp = str.toInt(&amp;ok); 注:ok表示转换是否成功,成功则ok为true,失败则ok为false。 2)int转QString QString...

Hello World 2万+
上一篇: qt:dialog的accept()概念
下一篇: Linux中Ctrl+z跟Ctrl+c的区别
自先沉稳~
博客等级 码龄8年 59粉丝 37原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值