我想下面的代碼刪除從價格領先零(0.00應削減至.00)如何檢查QString的第一個字符?
QString price1 = "0.00";
if(price1.at(0) == "0") price1.remove(0);
這使我有以下錯誤:「錯誤:轉換,從‘爲const char [2]’爲「QChar則」不明確「
我想下面的代碼刪除從價格領先零(0.00應削減至.00)如何檢查QString的第一個字符?
QString price1 = "0.00";
if(price1.at(0) == "0") price1.remove(0);
這使我有以下錯誤:「錯誤:轉換,從‘爲const char [2]’爲「QChar則」不明確「
主要問題是Qt將"0"
視爲空終止的ASCII字符串,因此編譯器消息約爲const char[2]
。
另外,QString::remove()
有兩個參數。所以你的代碼應該是:
if(price1.at(0) == '0') price1.remove(0, 1);
這種構建和運行在我的系統上(Qt 4.7.3,VS2005)。
嘗試這種情況:
price1.at(0) == '0' ?
的問題是,‘在’函數返回一個QChar
其是不能與天然字符/字符串對象」 0" 。你有幾個選擇,但我只放了兩個位置:
if(price1.at(0).toAscii() == '0')
或
if(price1.at(0).digitValue() == 0)
digitValue
返回-1,如果char是不是一個數字。
它應該是'price1.at(0).digitValue()'。 – jrok
由於'QChar :: QChar(char)'似乎是非顯式的,只是'... at(0)=='0''也應該這樣做。 –