如何将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;
}
答案 0 :(得分:6)
int QString::toInt(bool * ok = 0, int base = 10) const
使用base base 返回转换为
string
的{{1}},默认情况下为int
且必须介于2到36之间,或者为0。如果转换失败,则为0。如果发生转换错误,
10
设置为false;否则*ok
设置为true。如果base为0,则使用C语言约定:如果字符串以“0x”开头,则使用base 16;如果
*ok
以“0”开头,则使用基数8;否则,使用基数10.字符串转换将始终在“C”语言环境中进行。对于与语言环境相关的转换,请使用
string
示例:
QLocale::toInt()
请注意,根据您的确切用例,您可能还希望查看以下文档:
long QString::toLong(bool * ok = 0, int base = 10) const
qlonglong QString::toLongLong(bool * ok = 0, int base = 10) const