how to prevent the implicit conversion of double value to integer

I am taking user input as integer and selecting the function to run depending on it. However, When I enter 12.3 as car_choice, it takes the 1 as input, runs the program for the first case. How can I prevent this? I am using C++.

int car_choice;
std::cout << "Please enter the vehicle types for calculationsn";
do
{

    std::cout << "Please enter your choice in number:n";
    std::cout << "1) VW Carn";
    std::cout << "2) Audi Carn";
    std::cout << "3) Toyota Carn";
    std::cout << "4) Do not want to enter any number and to stopn";
    std::cin >> car_choice;
} while (car_choice != 1 && car_choice != 2 &&
    car_choice != 3 && car_choice != 4);

Go to Source
Author: Surendra