#include <iostream>
#include <iomanip>
#include <typeinfo>
using namespace std;
class Item {
public:
int quantity;
float price; // try with float (value is truncated), double, long double
};
int main() {
Item item1{10,14.2}, item2{1000000, 1.0000000001};
auto total_price = item1.quantity*item1.price + item2.quantity*item2.price;
cout <<"Type "<< typeid(total_price).name() <<": "
<< std::fixed<<std::setw(20) << std::setprecision(8) << total_price << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPHR5cGVpbmZvPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgSXRlbSB7CnB1YmxpYzoKICBpbnQgcXVhbnRpdHk7IAogIGZsb2F0IHByaWNlOyAgIC8vIHRyeSB3aXRoIGZsb2F0ICh2YWx1ZSBpcyB0cnVuY2F0ZWQpLCBkb3VibGUsIGxvbmcgZG91YmxlIAp9OwppbnQgbWFpbigpIHsKCUl0ZW0gaXRlbTF7MTAsMTQuMn0sIGl0ZW0yezEwMDAwMDAsIDEuMDAwMDAwMDAwMX07CglhdXRvIHRvdGFsX3ByaWNlID0gaXRlbTEucXVhbnRpdHkqaXRlbTEucHJpY2UgKyBpdGVtMi5xdWFudGl0eSppdGVtMi5wcmljZTsKCWNvdXQgPDwiVHlwZSAiPDwgdHlwZWlkKHRvdGFsX3ByaWNlKS5uYW1lKCkgPDwiOiAiCgkgICA8PCBzdGQ6OmZpeGVkPDxzdGQ6OnNldHcoMjApIDw8IHN0ZDo6c2V0cHJlY2lzaW9uKDgpICA8PCB0b3RhbF9wcmljZSAgPDwgZW5kbDsgCglyZXR1cm4gMDsKfQ==