使用atof 將std::string 轉換為Double
嘗試使用atof 函數將std::string 轉換為double 時,某些程式員遇到一個問題,即它總是返回零。為了解決這個問題,建議修改以下程式碼:
std::string num = "0.6"; double temp = ::atof(num.c_str());
atof 之前的雙冒號 (::) 指定我們正在呼叫全域函數,這是解決問題所必需的。
替代方法
雖然atof 是字串到雙精確度轉換的有效選項,但還有其他方法需要考慮的方法:
Qt 項目的其他注意事項
對於Qt 項目,建議使用QString::toDouble():
QString winOpacity("0.6"); double temp = winOpacity.toDouble();
為了在處理 const char* 時獲得最佳效能,QByteArray::toDouble() 應該是首選。
以上是為什麼將 `std::string` 轉換為 `double` 時,`atof` 有時會回傳零,有哪些替代方案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!