Bất cứ ai có thể giải thích tại sao b được làm tròn ở đây khi tôi chia nó bằng một số nguyên mặc dù nó là một phao?Tại sao chia hai số nguyên không nhận được một phao?
#include <stdio.h>
void main() {
int a;
float b, c, d;
a = 750;
b = a/350;
c = 750;
d = c/350;
printf("%.2f %.2f", b, d);
// output: 2.00 2.14
}
"Tại sao?" - Bởi vì ngôn ngữ được thiết kế theo cách đó. Nếu bạn muốn một 'float', trước tiên bạn chuyển sang' float'. – Mysticial
Chỉ vì phía bên tay trái của một nhiệm vụ là một phao không có nghĩa là phía bên tay phải đã được - nó chỉ có nghĩa là phía bên phải phải cung cấp _equal hoặc ít precision_ rằng một phao, do đó trình biên dịch không có lý do để làm cho nó bất cứ điều gì khác hơn là int. – ApproachingDarknessFish
Vì 'a' và' 350' là 'int'. –