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

ios-无法将“double”类型的值分配给“float”类型

  •  -7
  • Capella  · 技术社区  · 6 年前

    我无法使用变量类型来声明和使用常量。

    let MAX_RADIUS_IN_MILE = 100.0
    
    radiusSlider.maximumValue = MAX_RADIUS_IN_MILE
    

    在这种情况下,我会得到一个错误- Cannot assign value of type 'Double' to type 'Float'

    我不想用这样的类型定义声明常量 let MAX_RADIUS_IN_MILE: Float = 100.0 但只想知道另一个聪明的方法,使这个常数成为浮点数。

    有什么想法吗?

    例如,C对此有一个解决方案。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Robert Dresler Gustavo Vollbrecht    6 年前

    首先,使用camelcase在swift中命名。常量/变量/函数的lowercamelcase和类型(类,…)的uppercamelcase

    MAX_RADIUS_IN_MILE -> maxRadiusInMile


    现在来谈谈你的问题。错误很明显,您有类型为的常量 Double (如果不指定十进制数的类型,编译器将给出它的类型 双重的 ,但分配 maximumValue 需要类型 Float . 现在怎么办?

    如果您需要常量类型为 浮标 是:将常量的类型指定为 浮标

    let maxRadiusInMile: Float = 100
    let maxRadiusInMile = Float(100)
    

    无论如何,如果您只需要这个常量来分配一个值,可以直接使用它来分配。

    radiusSlider.maximumValue = 100
    

    如果你出于某种原因需要你的常量 双重的 ,然后可以转换类型的常量 双重的 浮标 使用设计的初始值设定项

    let maxRadiusInMile = 100.0
    radiusSlider.maximumValue = Float(maxRadiusInMile)