int number1 = 23;
int number2 = 100;
printf("Output: %.2d", double(number1) / number2);
这是我想要的:
Output: 0.23
我得到:
error: expected expression before ‘double’
我不明白错误信息。如何将整数转换为加倍并执行计算?
那是因为您以错误的方式进行类型转换,格式说明符也不正确:
printf("Output: %.2f", (double)number1 / number2);
这是输出:
使用%f
格式说明符
printf("Output: %.2f", (double) number1 / number2);
cast 的正确语法是(double)number1 / number2
,您应该使用%.2f
它作为格式说明符。
printf("Output: %.2f", (double)number1 / number2);
// ^ ^ ^
你有两个错误。
首先,您的投射不正确。像这样加倍:
(double)number1
其次,您使用了错误的打印格式说明符。您使用d
which 用于整数。改为使用f
。把它们放在一起给出:
printf("Output: %.2f", (double)number1 / number2);
让我们看一下格式说明符的一些基础知识好吗?
**Format specifier** **Characters matched** **Argument type**
%c any single character char
%d, %i integer integer type
%u integer unsigned
%o octal integer unsigned
%x, %X hex integer unsigned
%e, %E,%f, %g, %G floating point
number floating type
%p address format void *
%s any sequence of
non-whitespace
characters char
您使用“%d”而不是“%f”,编译器无法打印浮点值。