/ / como converter inteiro do tipo variável para duplo - conversão de tipo

como converter inteiro tipo de variável para conversão de tipo duplo

Quero converter números inteiros para dobrar no seguinte trecho de código:

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
int a , b;
double c;
cout<<"Enter two integers: ";
cin>>a>>b;
try
{
if (b == 0)
throw 0;
}
catch (int a)
{
cout<<"You made a division by zero?"<<endl<<a;
}
c = static_cast<double>(a/b);
cout<<"The division  is: "<<fixed<<setprecision(2)<<c;

}

Como alterar o código para gerar o valor duplo?

Respostas:

0 para resposta № 1

Como mencionado, você deve converter não o resultado da divisão, mas as próprias variáveis, para obter o dobro do valor. Todas as três opções funcionam.

int a, b;
double c;
std::cout << "Enter two integers: ";
std::cin >> a >> b;
try
{
if (b == 0)
throw 0;
}
catch (int a)
{
std::cout << "You made a division by zero?" << std::endl << a;
}
c = static_cast<double>(a) / b;
c = a / static_cast<double>(b);
c = static_cast<double>(a) / static_cast<double>(b);

std::cout << "The division  is: " << std::fixed << std::setprecision(2) << c;
std::cin >> a >> b;

0 para resposta № 2

Você está lançando o resultado da divisão; em vez disso, deve lançar os operandos.

Não use uma exceção para capturar uma condição que você já captura usando um simples if. Basta usar o ife use um else para pular a divisão se o segundo operando for zero.

int a , b;
double c;
cout<<"Enter two integers: ";
cin>>a>>b;
if (b == 0) {
cout<<"You made a division by zero?"<<endl;
} else {
c = static_cast<double>(a) / static_cast<double>(b);
cout<<"The division  is: "<<fixed<<setprecision(2)<<c;
}