代码之家  ›  专栏  ›  技术社区  ›  nambatee

目标C保持快速双精度

  •  -3
  • nambatee  · 技术社区  · 6 年前

    用swift创建的双精度

    let d: Double = 1.0
    

    当传递到目标C时,不会保留 .0 . 结果是 1 .

    有保存的方法吗 0 目标C中的整个双打?

    编辑:

    我要做的是:

    Parent.m

     @implementation Parent
    
    -(void)log:(NSDictionary*)data {
    }
    
     @end
    

    Parent.h

    @interface Parent : NSObject
    
    -(void)log:(NSDictionary*)data;
    
    @end
    

    Child.swift

    class Child: Parent {
    
        func log() {
          let measure = Double(1)
          let isLoggedIn = false
          let data: [String: Any] = ["is_logged_in": isLoggedIn, "measure": measure]
          log(data) // calling parent method, measure ends up as 1
        }
    
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   CRD    6 年前

    从你问题的措辞来看,你可能需要研究 双值 (两种语言相同)和 双值的文本表示 (你的问题表明,这两种语言可能不会默认为相同)。

    一旦你清楚了,查一下 NSString 方法 stringWithFormat 看看你能不能用它产生你需要的格式。( NSLog() 支持相同的格式。)

    如果以上内容不符合您的要求,请查找 NSNumberFormatter .

    高温高压