2011-07-27 45 views
4

Qt Creatorを初めて使用しています。私は長い番号にQStringの値を変換したいと思います。これを行う方法?QstringをLongに変換する方法は?

long s; 
QString x="6458621237"; 

EDIT 

As a result i'll have long s=6458621237; 

ありがとうございます。 THx

答えて

9

toLong機能を使用してください。例えば

QString str = "FF"; 
bool ok; 

long hex = str.toLong(&ok, 16);  // hex == 255, ok == true 
long dec = str.toLong(&ok, 10);  // dec == 0, ok == false 
+0

thx。感謝する!!なぜ2行目でok == falseですか? – sunset

+0

@sunset:ドキュメントには次のようなものがあります。「デフォルトでは10で、2から36までの0または0でなければなりません。変換が失敗した場合は0を返します。 –

5

QT Docsから:

長いQStringの:: toLong文字列を返します

(ブール* OK = 0、int型ベース= 10)constは

基本ベースを使用してlongに変換します。これは、デフォルトで であり、2〜36または0でなければなりません。baseが0の場合、ベースは次の規則を使用して自動的に決定されます。If文字列 は "0x"で始まり、16進数とみなされます。 "0"で始まる場合、それは8進数とみなされます。それ以外の場合は10進数とみなされます。 変換に失敗した場合は0を返します。

okが0でない場合:変換エラーが発生した場合、* okはFALSEに設定されます。 * okがTRUEに設定されています。

この関数では、先頭と末尾の空白は無視されます。

+0

私は正しい答えのために人々があなたを下降させる理由を理解していませんか? –

+1

フランクに感謝します。RTFMに何か問題があると思われるかもしれません... –

0
long s; 
QString x="6458621237"; 
s = x.toLong(); 
関連する問題