我有一个关于将十进制数格式化为某种 QString 格式的问题。基本上,我的程序中有一个可以接受任何值的输入框。我希望它将这个框中的值转换为格式“+05.30”(基于该值)。该值将限制为 +/-99.99。
一些例子包括:
.2 --> +00.02
-1.5 --> -01.50
9.9 --> +09.90
我正在考虑使用这样的转换器,但它会有一些明显的问题(没有前导 0,没有前导 + 符号)。
QString temp = QString::number(ui.m_txtPreX1->text().toDouble(), 'f', 2);
这个问题有一些相似之处,但没有将前端和后端填充联系在一起。
将 int 转换为带有零填充(前导零)的 QString https://stackoverflow.com/questions/2618414/qstringnumber-zero-padding
关于如何解决这个问题有什么想法吗?感谢您的帮助!谢谢!
我认为你不能单独使用任何 QString 方法来做到这一点(或者number https://doc.qt.io/qt-5/qstring.html#number or arg https://doc.qt.io/qt-5/qstring.html#arg)。当然,您可以手动添加零和符号,但我会使用旧的 sprintf:
double value = 1.5;
QString text;
text.sprintf("%+06.2f", value);
Edit:根据alexisdm的评论简化了代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)