在Qt 中QString 转换成数值有直接调用的接口:
1)
int | toInt ( bool * ok = 0, int base = 10 ) const |
2)
double | toDouble ( bool * ok = 0 ) const |
如果想知道转换是否成功,可以通过检查参数ok返回的值是否为真来判断。
一直以来对空字符串转换成数值是否可行存在疑问?
今天试了一下,不成!!返回的ok=false.
不仅如此,
1)连QString iStr("8.123");这样的字符串转换成 toInt,也会失败。返回值为0,且ok=false。结论一:浮点形式的字符串不能转换成整型数值。
2)连QString iStr(" 8 "); 这样的字符串转换成 toInt,成功。返回值为8,且ok=true。结论二:字符串两头的空格会被忽略掉。
同理, QString dStr(" 9.0134"); 和 QString dStr("9.0134 "); 和 QString dStr(" 9.0134 "); 可以成功转换浮点数值。
3)QString dStr(" 9.0 134"); 转换成浮点数值失败。结论三:如果字符串中间有空格,会导致转换失败。