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