You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中是否存在适用于整数类型的fmod函数?

针对整数的“取模”解决方案

嘿,这个问题问得很实用!其实在C++里,我们根本不需要专门找类似fmod的整数版本函数——因为语言本身就内置了处理整数取余的工具:

  • 直接用%运算符:这是最常用的方式,针对int、long、long long等所有整数类型都能直接进行取余操作。不过要注意,在C++11及以后的标准里,%运算的结果符号会和被除数保持一致。举几个例子:

    • 7 % 3 的结果是 1
    • (-7) % 3 的结果是 -1
    • 7 % (-3) 的结果是 1
  • 如果需要同时获取商和余数:可以使用<cstdlib>头文件里的div(针对int)、ldiv(针对long)、lldiv(针对long long)函数。这些函数会返回一个包含商和余数的结构体,适合需要同时用到这两个值的场景。示例代码如下:

    #include <cstdlib>
    #include <iostream>
    
    int main() {
        div_t result = div(-7, 3);
        std::cout << "商:" << result.quot << ",余数:" << result.rem << std::endl;
        // 输出:商:-2,余数:-1
    }
    

另外要提醒一句:千万别想着把整数转成浮点数再用fmod,这种方式完全没必要——不仅会损失计算效率,对于较大的整数还可能因为浮点数精度限制导致结果出错。

内容的提问来源于stack exchange,提问作者Aaron Franke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:19:18