En C, la conversión de una cadena en un doble se puede lograr usando las funciones std::istringstream y 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;
}
Así es como funciona esta función:
Tenga en cuenta que esta función no puede distinguir completamente todas las representaciones de cadena permitidas de cero de las cadenas no numéricas. Por ejemplo, considera todas las siguientes cadenas como cero:
"0" "0." "0.0"
A continuación se muestran algunos casos de prueba para demostrar el uso de la función 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;
}
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3