C では、文字列を double に変換するには、 std::istringstream 関数と std::stod 関数を使用します。
#include
double string_to_double(const std::string& s) {
std::istringstream iss(s);
double x;
if (!(iss >> x)) {
return 0; // Return 0 for non-numerical strings
}
return x;
}
この関数の仕組みは次のとおりです。
この関数は、許可されているすべてのゼロの文字列表現と非数値文字列を完全に区別できるわけではないことに注意してください。たとえば、次の文字列はすべてゼロとみなされます:
"0" "0." "0.0"
string_to_double 関数の使用法を示すテスト ケースをいくつか示します。
#include
int main() {
assert(0.5 == string_to_double("0.5"));
assert(0.5 == string_to_double("0.5 "));
assert(0.5 == string_to_double(" 0.5"));
assert(0.5 == string_to_double("0.5a"));
assert(0 == string_to_double("0"));
assert(0 == string_to_double("0."));
assert(0 == string_to_double("0.0"));
assert(0 == string_to_double("foobar"));
return 0;
}
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3