double x = 9.29;
double y = 8.69;
double diff = floor((x - y)*100+0.5)/100.0;
это дает мне разница, как 0,6, но мне нужно как 0,60 (два знака после запятой) Может кто-то пожалуйста, помогите мне с этим?округление двойные две десятичные точки
double x = 9.29;
double y = 8.69;
double diff = floor((x - y)*100+0.5)/100.0;
это дает мне разница, как 0,6, но мне нужно как 0,60 (два знака после запятой) Может кто-то пожалуйста, помогите мне с этим?округление двойные две десятичные точки
Значение double равно 0,6, так как 0,6 и 0,60 (математически) то же самое. Вам нужно установить точность, когда вы используете . Значение не при его вычислении.
Это может быть сделано с помощью
cout << setprecision (2) << diff << endl;
или
printf("%.2f\n", diff);
Поскольку diff - это double this ----> 'printf ("%. 2f \ n ", diff);' вызывает предупреждение. Вы должны написать либо '% .2e' /'% .2E', либо '% .2lf' –
Если вы используете C++, вы должны сделать что-то вроде этого:
cout.precision(2);
cout << fixed << diff << "\n";
Если вы ERE с помощью C попробуйте это:
printf("%.2e\n", diff);
Функция precision
определяет максимальное количество цифр, которое должно быть записано на операции вставки, для выражения значений с плавающей запятой. Таким образом, если выполнить этот код вы получите
0.60
и если вы установите presision до 3 вы получите
0.600
[станд :: setprecision] (http://en.cppreference.com/w/cpp/io/manip/setprecision) – chris
Вы печатаете это позже? Это будет тогда, когда 0,6 и 0,60 будут иметь значение. И в этом случае *, как вы напечатаете, будет иметь значение, какой ответ может быть лучше. – crashmstr
Я хочу сохранить его в переменной diff. – CamAd