【发布时间】:2016-05-21 17:42:03
【问题描述】:
我正在学习 C。 我想知道为什么你会得到一个浮点数,即使你的一个变量是一个 int。
float x = 5.0;
int y = 2;
float result = x / y;
我的猜测是结果是 2.00000。但它确实返回一个浮点数 (2.500000)
我认为这将是 2.000000,因为如果你将 2 个整数相除,这就是结果。而且我认为,如果您使用 int 和 float 它会选择最不精确的值。
【问题讨论】:
-
这是因为其中一个操作数是浮点数。这足以使操作成为浮点数。
-
1) 因为一个操作数是一个浮点数。 2) 因为你已经写了
float result- 为什么你会期望它是别的东西? -
减号在哪里发挥作用? ;) 为什么你会猜测或期望你的除法结果是
2.00000? -
请注意,表达式计算为某事,而不是返回某事。
-
任何合理的原因让您认为强制转换为具有较小范围(不一定是较低精度)的类型更合乎逻辑?你知道任何这样的编程语言吗?
标签: c