atof を使用して std::string を Double に変換する
atof 関数を使用して std::string を double に変換しようとすると、一部のプログラマは、一貫してゼロを返すという問題に遭遇します。これに対処するには、次のコードを修正することをお勧めします。
std::string num = "0.6"; double temp = ::atof(num.c_str());
atof の前の二重コロン (::) は、問題を解決するために必要なグローバル関数を呼び出していることを指定します。
代替アプローチ
atof は文字列から double への変換に有効なオプションですが、他のアプローチもあります考慮事項:
Qt プロジェクトに関する追加の考慮事項
特に Qt プロジェクトの場合は、QString::toDouble() の利用が推奨されます:
QString winOpacity("0.6"); double temp = winOpacity.toDouble();
const char* を処理するときに最適なパフォーマンスを得るには、QByteArray::toDouble() を次のようにする必要があります。優先します。
以上が`std::string` を `double` に変換するときに `atof` がゼロを返す場合があるのはなぜですか? 代替案は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。