可是这样的话,比如说123mod1.8,转换之后就变成123mod1了,计算结果显然不对
追答嗯……mod是vb语言中的用法哦,在C语言中是用“%”代替的。
计算结果显然不对?
不会哦,因为C语言是向0取余,整数则去掉小数部分,负数则小数部分补足为-1。
所以强制类型转换后结果应该是123
之所以用mod描述,是因为'%'不支持浮点数
这里mod不是关键字或编程语言运算符,是自然语言
向0取余?什么意思?
C语言的将浮点型强制转换为整型时,运算结果是浮点数的整数部分,比如1.8,如果(int)(1.8)那结果就是1,123%1的结果肯定是0.
你用windows计算器算一下就知道了,123mod1.8的结果应该是0.6(近似值),而不是0.
cout<<123%(int)(1.8);//实际运行后,这个语句和我想的一样,计算结果错误,输出的是0,而不是0.6
所以我才问这个问题