Я не совсем уверен, почему я не могу сделатьАрифметические операторы и функции, требующие в C
double a = (double) my_Function(45)/2048/2340/90;
printf("%.4f",a); // prints out 0.00
Но вместо этого я должен использовать еще одну переменную:
double a = (double) my_Function(45);
double b = a/2048/2340/90;
printf("%.4f",b); // prints out the correct value
Почему вы выбрали 'float' вместо' double'? И второй бросок в вашем втором ответе ничего не делает. – Phil
должно быть исправлено. –
Могу ли я спросить, почему вы жестко кодируете эти, казалось бы, магические числа 2048, 2340 и 90? Возможно, вы можете '#define MAGIC (2048 * 2340 * 90)' или 'const int MAGIC = 2048 * 2340 * 90' и просто' ((double) my_Function (45))/MAGIC', чтобы упростить будущее. Или, если они должны быть отдельными константами, вы все равно можете использовать эту технику, чтобы дать им имена, которые помогают другим понять, что делает код. –