2013-03-19 177 views
0

双/串如何doublestring变量组合成一个功能?Qt的结合在功能

我叫接收double参数的函数:

counter(&filesize)

比通话功能:

void Properties::counter(double *filesize) 
{ 
    double res = *filesize; 
    QString filetyperes; 

    if (res <= 1024) { res = res; filetyperes = "B"; } 
    else if (res > 1024 && res <= 1024*1024) { res = res/1024; filetyperes = "KiB"; } 
    else if (res > 1024*1024 && res <= 1024*1024*1024) { res = res/1024/1024; filetyperes = "MiB"; } 
    else if (res > 1024*1024*1024) { res = res/1024/1024/1024; filetyperes = "GiB"; } 

    *filesize = res; 
} 

它将获得双倍参数,并计算正确。

但是,我有转换MIB/KIB所以不是

*filesize = res + filetyperes这对于一个示例返回例子(1 KiB)。

但我的参数返回双人床,所以我可以添加(const double *filesize)但throwns错误。

header.h是:

private: 
     void counter(double *filesize = 0); 

谢谢。

+0

您是否有兴趣在单独为你的文件大小返回double值或者你想完整的字符串包括filetyperes价值? – 2013-03-19 20:51:11

+0

无论如何,返回字符串 – 2013-03-19 20:56:35

回答

0

这应返回与您的文件大小和filetyperes为QString级联:

QString Properties::counter(double *filesize) 
{ 
    double res = *filesize; 
    QString filetyperes; 

    if (res <= 1024) { res = res; filetyperes = "B"; } 
    else if (res > 1024 && res <= 1024*1024) { res = res/1024; filetyperes = "KiB"; } 
    else if (res > 1024*1024 && res <= 1024*1024*1024) { res = res/1024/1024; filetyperes = "MiB"; } 
    else if (res > 1024*1024*1024) { res = res/1024/1024/1024; filetyperes = "GiB"; } 

    *filesize = res; 
    return QString::number(res) + filetyperes; 
} 
+0

当调用函数作为'QString :: number(属性::计数器(文件大小))'文件大小接收双倍,它应该返回字符串(Qstring),但我仍然有一个错误:没有匹配函数调用'Properties :: counter(double&)'!候选包括'双文件大小= 0;'我已声明的变量作为文件大小'double'之前调用一个函数。 – 2013-03-19 21:21:49

+0

作品,呼吁为'属性::计数(文件大小)'解决问题。谢谢。 – 2013-03-19 21:35:38