我今天在我的计算机科学课上参加了一次测验,因为我不知道C语言中有%操作符的存在,所以错了一个关于取模运算符的问题,我一直在使用fmod()
。为什么两者都存在?它们哪个更好/更快,还是它们只处理不同的数据类型?
我今天在我的计算机科学课上参加了一次测验,因为我不知道C语言中有%操作符的存在,所以错了一个关于取模运算符的问题,我一直在使用fmod()
。为什么两者都存在?它们哪个更好/更快,还是它们只处理不同的数据类型?
此函数计算的除法操作x/y的浮点余数恰好是值x-n*y,其中n是x/y,其小数部分被截断。
返回值与x具有相同的符号,并且在大小上小于或等于y。
另一方面,当设计模除二进制运算符(%)时,语言设计人员确定它只支持“整数”类型的操作数,因为从技术上讲,在数学中,“余数”的概念仅适用于整数除法。fmod
函数返回值为x
− ny
,其中n是某个整数,如果y
不为零,则结果与x
具有相同的符号且其大小小于y
的大小...”C11 §7.12.10.1 3。 - chux - Reinstate Monicay
相等的值。 - chux - Reinstate Monica这是因为 %
是整数运算符,而 fmod
代表 floatmod
,用于浮点数。
%表示整数取余
fmod是浮点数取余,可以按照MSDN中的描述使用。 https://msdn.microsoft.com/en-us/library/20dckbeh.aspx