La mejor manera de manejar la entrada de dinero.
Estoy haciendo un programa bancario básico en c++ y tengo una función de depósito que acepta un double, por lo que quiero manejar la entrada del usuario para un double que sea válido como dinero, a 2 decimales y no menos de 0.
¿Cuál es la mejor manera de hacer esto?
Tengo esto hasta ahora, ¿hay algo más que necesite verificar para la validación del dinero o algo que se pueda hacer en menos líneas de código? Gracias.
// permitir al usuario depositar fondos en una cuenta
try{
double amount = std::stoi(userInput); // userInput es un string
if (amount < 0)
{
throw std::invalid_argument("El monto no puede ser negativo");
}
// llame a la función para depositar
std::cout << "Ha depositado " << amount << " en su cuenta." << std::endl;
}
catch(std::invalid_argument){
std::cout << "Entrada no válida." << std::endl;
}
davy.ai
Para manejar la entrada del usuario para un valor monetario válido a dos decimales y no menor que 0, es mejor utilizar el siguiente enfoque:
Aquí está el código modificado:
Este código verifica la entrada negativa y las posiciones decimales inválidas e imprime el monto redondeado a 2 decimales. También puede agregar verificaciones adicionales, como verificar la entrada no numérica, pero esto debería cubrir los requisitos básicos de validación de dinero.