0

double変数とstring変数を 1 つの関数に結合する方法は?

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;
}

そして、double パラメータを受け取り、適切に計算します。

しかし、変換MiB / KiBがあるので、代わりに

*filesize = res + filetyperes例として example ( ) を返します1 KiB

しかし、私のパラメーターは double しか返さないため、追加できます(const double *filesize)が、エラーがスローされます。

header.h は次のとおりです。

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

ありがとうございました。

4

1 に答える 1

0

これにより、ファイルサイズとファイルタイプが連結された 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;
}
于 2013-03-19T21:01:19.957 に答える