Замените строчку:
cout << whole << decimal << endl;
на:
cout << whole + decimal << endl;
В cout приходит число whole и число decimal без пробела, то есть туда идут числа "2" и "0. 375" записанные без пробела и получается "20. 375".
Можете написать так:
cout << whole << " " << decimal << endl;
и увидите эти два числа.
Если их складывать то получится нормальное "2. 375".