unsigned int
をdouble
に変換する正しい方法は何ですか?これは、 と正確にはというグラフを作成するためのパラメータとして、データ設定のためにQCPCustomPlot
のために必要です。C++符号なしintをダブル変換する
EDIT:Silly me。 QVector<double> x(time), y(ipv4int)
を間違って初期化したため、「メモリリーク」のエラーが発生しました。 time
の値をipv4int
(データ発生頻度)に変更し、x
とy
が正しく一致するように変更しました。
変数をtime
とすると、実際の変換に関する問題が解決されました。 1.85592e+09
の形式ではなく、1855919686
などの値を保持するdouble
形式に変換するにはどうすればよいですか。
QCustomPlotがdouble
が必要ですが、QVector<double>
が1.85592e + 09
更新されたコードのような値に取ることができなかったようだ:
QVector<double> x(i), y(totalIP); //i=236052
for(int o = 0; o <= i; o++){
double dSec = arrayIPxTime[o][0] - startSecond; //arrayIPTime[o][0] holds time in second
double dMin = dSec/60;
double ipv4addr = arrayIPxTime[o][1]; //arrayIPTime[o][0] holds ipaddr in integer format
x[o] = dMin;
//y[o] = ipv4addr; this is the line that causes crash.
qDebug()<<"Count "<<o<<" time "<< x[o] <<" ipv4 "<<ipv4addr<<" arrayIPxTime[o][1] "<<arrayIPxTime[o][1];
}
電流出力:
Count 236048 time 62.3167 ipv4 1.85592e+09 arrayIPxTime[o][1] 1855919686
Count 236049 time 62.3167 ipv4 1.85592e+09 arrayIPxTime[o][1] 1855919686
Count 236050 time 62.3167 ipv4 1.85592e+09 arrayIPxTime[o][1] 1855919686
Count 236051 time 62.3167 ipv4 1.85592e+09 arrayIPxTime[o][1] 1855919686
_「符号なしint型変数をdouble型に変換するとメモリリークが発生しました」_それについてはどうしましたか?それは通常そうではありません。 –
あなたは何が起こっているのか詳細を提供する必要があります。単純な変換だけでは、メモリリークが発生しません。それは全く別の関心事です。 –