int main(void)
{
float w = 8.456;
int b = 3;
printf("%d", (int)(b * w));
return 0;
}
似乎无法理解这与25
相等,即使它是int * float
并且显示为int
,int
也是如此printf
1}}表示int
行... Isn' t float
乘以0
a public IEnumerable<tblCustomerType> GetCustomerType()
{
// IEnumerable<tblCustomerType> result;
using (var context = new dbLMSEntities())
{
var x = (from c in context.tblCustomerTypes
select new {c.CustomerTypeID, c.CustomerType}).AsEnumerable();
return x;
}
?
答案 0 :(得分:8)
b*w
结果为float
(= 25.368),然后您将其转换为int
,并将其截断为25
。
NB:
如果您期望结果为24,则两个变量都应为ints
。
答案 1 :(得分:4)
当你将一个整数乘以浮点数时,所谓的&#34;通常的算术转换&#34; (UAC)将举行。根据UAC,如果其中一个操作数是float
而另一个是整数,则两个操作数都将转换为float
:3.0 * 8.456 = 25.368。之后,在printf转换为int时,则会截断小数部分,结果为25。