iOS 各种数学公式

  /**
    向上取整
    ceil(4.1) = 5.0
    ceil(4.9) = 5.0
   */

    public func ceil(_: Double) -> Double
  /**
    向下取整
    floor(4.1) = 4.0
    floor(4.9) = 4.0
  */

  public func floor(_: Double) -> Double
  /**
    最接近参数的整数 (如果有两个就取偶数)
    nearbyint(-6.5) = -6
    nearbyint(-5.5) = -6
    nearbyint(-4.5) = -4
    nearbyint(6.5)  = 6
    nearbyint(5.5)  = 6
    nearbyint(4.5)  = 4
   */

  public func nearbyint(_: Double) -> Double
  /**
    最接近参数的整数 (如果有两个就取偶数)
    rint(6.5) = 6.0
    rint(5.5) = 6.0
    rint(4.5) = 4.0
    rint(-6.5) = -6.0
    rint(-5.5) = -6.0
    rint(-4.5) = -4.0
    rint(5.112) = 5.0
   */

    public func rint(_: Double) -> Double


  /**
    和rint一样的,不过返回的是Int
   */

    public func lrint(_: Double) -> Int
  /**
    (其实就是四舍五入,只不过负数的情况是反过来的) (似乎这就是正常的四舍五入)
    > 0 满0.5 + 1
    < 0 满0.5 - 1
   */

    round(-6.5) = -7
    round(-5.5) = -6
    round(-4.5) = -5
    round(6.5)  = 7
    round(5.5)  = 6
    round(4.5)  = 5
      
    public func round(_: Double) -> Double

  /**
    和round一样,只不过返回的是整数
   */
    public func lround(_: Double) -> Int
  /**
    直接去除数字的小数部分
   */
    trunc(-6.534) = -6
    trunc(4.34)   = 4

    public func trunc(_: Double) -> Double
  /**
    取模
   */
    fmod(6, 2.1)    = 1.8
    fmod(0.6, 0.13) = 0.08
   
    public func fmod(_: Double, _: Double) -> Double
  /**
    取余 (正负取绝对值小的那个)
   */
    remainder(6, 1.8)      = 0.6
    remainder(0.6, 0.13)   = -0.05
   
    public func remainder(_: Double, _: Double) -> Double
  /**
    取余 (正负取绝对值小的那个)
    a为的是第一个数除以第二个数 四舍五入的值
   */
    var a: Int32
    remquo(20.1, 13, &a)// -5.9, a = 2
    remquo(20.1, 14, &a)// -7.9, a = 1
   
     public func remquo(_: Double, _: Double, _: UnsafeMutablePointer<Int32>!) -> Double
  /**
    以第二个参数的符号(正或负), 返回第一个参数
   */
    copysign(1.0, -3.2)//  -1.0
    copysign(1.0, 2.4 )//  1.0

    public func copysign(_: Double, _: Double) -> Double
  /**
    x = a - b <= 0 ? 0 : a - b
   */

    public func fdim(a: Double, b: Double) -> Double
     
  /**
    x = a >= b ? a : b
   */

    public func fmax(a: Double, b: Double) -> Double
     
  /**
    x = a <= b ? a : b
   */

    public func fmin(a: Double, b: Double) -> Double
     
  /**
    x = a * b + c
   */
    public func fma(a: Double, b: Double, c: Double) -> Double
  /**
  返回值为参数的小数部分
  整数部分通过指针存
  */
    eg:
      var mech: Double = 0
      let num = modf(3.123, &mech)
      //mech = 3.0  num = 0.123

  public func modf(_: Double, _: UnsafeMutablePointer<Double>!) -> Double
  //x的y次幂
  public func pow(x: Double, y: Double) -> Double
  //平方根
  public func sqrt(_: Double) -> Double

  //绝对值
  public func fabs(_: Double) -> Double
  //立方根
  public func cbrt(_: Double) -> Double
  /**
  x * (2的num次幂)
   */
    eg:
    ldexp(3.0, 3) = 24
    ldexp(3.0, 2) = 12

  public func ldexp(x: Double, num: Int32) -> Double
  /**
    m * 2^n = (输入值)
   */
  var n: Int32 = 0
  var m = frexp(16.400000, &n)
  n = 5  m = 0.5125
     
  16.4 = 0.5125 * (2^5) = 0.5125 * 32

  public func frexp(_: Double, _: UnsafeMutablePointer<Int32>!) -> Double
  /**
    直角三角形的斜边长
    a^2 + b^2 = c^2
    已知a,b 求c
   */

  public func hypot(_: Double, _: Double) -> Double
/**
  反三角函数
 */
  public func acos(_: Double) -> Double
  public func asin(_: Double) -> Double

  public func atan(_: Double) -> Double  
  反正切 (主值),结果介于[-PI/2,PI/2]

  public func atan2(_: Double, _: Double) -> Double 
  反正切 (整圆值), 结果介于[-PI,PI]
 /**
  三角函数
  */
  public func cos(_: Double) -> Double
  public func sin(_: Double) -> Double
  public func tan(_: Double) -> Double
  /**
  反双曲三角函数
   */
  public func acosh(_: Double) -> Double
  public func asinh(_: Double) -> Double
  public func atanh(_: Double) -> Double
  /**
  双曲三角函数
  */
  public func cosh(_: Double) -> Double
  public func sinh(_: Double) -> Double
  public func tanh(_: Double) -> Double
  //e的n次幂
  public func exp(_: Double) -> Double
  //2的n次幂
  public func exp2(_: Double) -> Double
  //1.71828 的n次幂 (不知道这个数是干嘛的)
  public func expm1(_: Double) -> Double
  //e为底的对数
  public func log(_: Double) -> Double
  //10为底的对数
  public func log10(_: Double) -> Double
  //2为底的对数
  public func log2(_: Double) -> Double
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容