0

私はいくつかのコードを(去った人から)継承し、この小さなスニペットを見つけました:

double minX = xVal.find('.') == string::npos ? (double)atoi(xVal.c_str()) : atof(xVal.c_str());
double minY = yVal.find('.') == string::npos ? (double)atoi(yVal.c_str()) : atof(yVal.c_str());

彼が整数型に atoi を使用することを選択した理由は何かありますか? 問題が見当たりません:

double minX = atof(xVal.c_str());
double minY = atof(yVal.c_str());

ありがとう。

4

4 に答える 4

4

本当に、atoi または atof を使用するべきではありません。どちらも廃止され、それぞれ strtol と strtof に置き換えられました。

于 2014-03-10T11:47:58.000 に答える
1

理由はありません。これらの三項演算子は余分です。ただし、atof の代わりに strtod を使用することをお勧めします。atofはオーバーフローおよびアンダーフロー エラーを検出しません。

于 2014-03-10T11:49:41.870 に答える
0

彼のコードは次のとおりです。 double minX = (double)atoi(xVal.c_str());

すると、float の存在を突き止め、何も考えずにコードを修正しました。

于 2014-03-10T11:50:24.723 に答える