В C ++ значение с плавающей запятой усекается от двойного
Я кодировал с помощью переменных с плавающей точкой раньше и никогда не имел этой проблемы.
float a, b, subtotal, stx;
a=15.95;
b=24.95;
subtotal=a+b;
stx=subtotal*.07;
cout << "Item 1: $" << a << endl;
cout << "Item 2: $" << b << endl;
cout << "\nSubtotal: $" <<subtotal<< endl;
cout << "Sales Tax: $" << stx << endl;
cout << "Total: $" << subtotal+stx << endl;
относительно прямой код вперед
warning C4305: '=' : truncation from 'double' to 'float'
Я понимаю идею обрезания данных (и я также знаю, что вы можете написатьf
в конце переменной. Но если переменные объявлены как float, почему компилятор интерпретирует литеральные значения как удвоенные, если они были объявлены как float.
Я просмотрел несколько других билетов, и они отличались от моего запроса. Я не могу найти решение, почему данные читаются как двойные, если они объявлены как плавающие.