Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt/C++;将QString转换为十进制_C++_Qt_Qstring_Qtcore - Fatal编程技术网

C++ Qt/C++;将QString转换为十进制

C++ Qt/C++;将QString转换为十进制,c++,qt,qstring,qtcore,C++,Qt,Qstring,Qtcore,如何将QString转换为十进制 在C代码中,它看起来是这样的: public static decimal ConvertToDecimal(string tekst, bool upperOnly) { decimal num = 0m; decimal num2 = 1m; string text = upperOnly ? "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" : "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO

如何将QString转换为十进制

在C代码中,它看起来是这样的:

public static decimal ConvertToDecimal(string tekst, bool upperOnly)
{
decimal num = 0m;
decimal num2 = 1m;
string text = upperOnly ? "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" : "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234";
int i = tekst.Length - 1;
while (i >= 0)
{
    num += text.IndexOf(tekst[i]) * num2;
    i--;
    num2 *= text.Length;
}
return num;
}
根据:

int QString::toInt(bool*ok=0,int base=10)const

使用base base返回转换为
int
字符串,默认值为
10
,必须介于2和36之间,或0。如果转换失败,则返回0

如果发生转换错误,
*ok
设置为false;否则,
*确定
设置为真

如果base为0,则使用C语言约定:如果字符串以“0x”开头,则使用base 16;如果
字符串
以“0”开头,则使用基数8;否则,使用底座10

字符串转换将始终在“C”语言环境中进行。对于依赖于语言环境的转换,请使用
QLocale::toInt()

例如:

请注意,根据具体的用例,您可能还希望查看以下文档:


这可能有答案:@Rolice:这可能只是OP所问问题的一小部分。我只是参考一些例子,不要否认你的答案,尤其是评论:)@Rolice:够公平的了。)我想如果OP对确切的数字模式更清楚的话,我们可以更具体一些。这就是我现在试图提供所有可能选项的原因。:)
QString str = "FF";
bool ok;
int hex = str.toInt(&ok, 16);       // hex == 255, ok == true
int dec = str.toInt(&ok, 10);       // dec == 0, ok == false