2011-12-06 47 views
4

我想下面的代碼刪除從價格領先零(0.00應削減至.00)如何檢查QString的第一個字符?

QString price1 = "0.00"; 
if(price1.at(0) == "0") price1.remove(0); 

這使我有以下錯誤:「錯誤:轉換,從‘爲const char [2]’爲「QChar則」不明確「

回答

6

主要問題是Qt將"0"視爲空終止的ASCII字符串,因此編譯器消息約爲const char[2]

另外,QString::remove()有兩個參數。所以你的代碼應該是:

if(price1.at(0) == '0') price1.remove(0, 1); 

這種構建和運行在我的系統上(Qt 4.7.3,VS2005)。

4

嘗試這種情況:

price1.at(0) == '0' ? 
2

的問題是,‘在’函數返回一個QChar其是不能與天然字符/字符串對象」 0" 。你有幾個選擇,但我只放了兩個位置:

if(price1.at(0).toAscii() == '0') 

if(price1.at(0).digitValue() == 0) 

digitValue返回-1,如果char是不是一個數字。

+0

它應該是'price1.at(0).digitValue()'。 – jrok

+1

由於'QChar :: QChar(char)'似乎是非顯式的,只是'... at(0)=='0''也應該這樣做。 –

相關問題