【发布时间】:2012-04-08 19:45:47
【问题描述】:
我尝试使用toFloat() 方法从QString 获取浮点数,但我获取的每个数字都会得到0。我认为数字格式错误,系统无法识别,我该如何为这些数字设置正确的格式:119,68648?
【问题讨论】:
我尝试使用toFloat() 方法从QString 获取浮点数,但我获取的每个数字都会得到0。我认为数字格式错误,系统无法识别,我该如何为这些数字设置正确的格式:119,68648?
【问题讨论】:
请看http://qt-project.org/doc/qt-4.8/qlocale.html#toDouble
这是文档中的示例代码:
bool ok;
double d;
QLocale german(QLocale::German);
d = german.toDouble( "1234,56", &ok ); // ok == true, d == 1234.56
d = german.toDouble( "1.234,56", &ok ); // ok == true, d == 1234.56
d = german.toDouble( "1234.56", &ok ); // ok == false
d = german.toDouble( "1.234", &ok ); // ok == true, d == 1234.0
【讨论】:
您可以为您的应用程序设置一个小数点分隔符为逗号的语言环境。
或者您可以在进行转换之前用点替换逗号,以便能够接受这两种数字格式。
float value = yourString.replace(",", ".").toFloat();
【讨论】: