gpt4 book ai didi

c++ - QLocale - 验证价格

转载 作者:太空宇宙 更新时间:2023-11-04 13:53:47 25 4
gpt4 key购买 nike

我在验证价格时遇到问题。

接受价格示例:10,00/100,00/1.000,00

不接受:10/100/1000.00

代码,但是这个传递 100/10/1000.00

 bool ok;
QLocale::setDefault(QLocale(QLocale::Portuguese, QLocale::Brazil));
QLocale brazil; // Constructs a default QLocale
QString text;
if(ui->price->text().length() <= 2){
qDebug() << text.sprintf("%6.2f", ui->price->text().toDouble()); //format 50 = 50.00
}
brazil.toDouble(ui->price->text(), &ok);
qDebug() << ok;

最佳答案

如您所料,验证失败,同时使用 Qt 4.8 和最新的 Qt 5。检查您是否真的可以在您的平台上正确设置 QLocale。 brazil.decimalPoint() 应该返回 ','

注意:如果您想要区域设置感知格式,则不能使用 QString::sprintf。显式使用 QTextStream 和 setLocale(),因为它将默认为 C 语言环境。

#include <QLocale>
#include <QDebug>
#include <QStringList>

int main()
{
bool ok;
QLocale::setDefault(QLocale(QLocale::Portuguese, QLocale::Brazil));
QLocale brazil; // Constructs a default QLocale
QStringList textlist = QStringList() << "400.00" << "400" << "400,00";
for (QString text : textlist) {
brazil.toDouble(text, &ok);
qDebug() << text << "is" << ok;
}

return 0;

}

产量,

"400.00" is false
"400" is true
"400,00" is true

关于c++ - QLocale - 验证价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22454552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com