Я пытаюсь сделать 2 целых числа в поплавках с помощью static_cast
. Проблема в том, что когда я делаю математику, я получаю 4 вместо 4.00.Static Cast (int) to (float) без десятичных знаков
Ниже я привел пример кода.
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
int num = 4,
den = 1;
cout << static_cast<float>(num)/static_cast<float>(den);
}
Если я делаю это неправильно, укажите, где я ошибаюсь. Также, пожалуйста, укажите, есть ли способ получить 4,00 вместо 4?
http://stackoverflow.com/questions/14677448/how-to-cout-a-float-number-with-n- decimal-places –
Возможный дубликат [Как напечатать двойное значение с полной точностью с помощью cout?] (http://stackoverflow.com/questions/554063/how-do-i-print-a-double-value-with -full-precision-using-cout) – Eelke
В чем разница между 4.00 и 4? Тем не менее, чтобы избежать этих бесполезных бросков, создайте float-литералы: 'float num = 4.0f;'. Как правило, всякий раз, когда вы чувствуете соблазн добавить приведение для компиляции кода или для его компиляции без предупреждений, вы использовали неправильный тип для начала. –