用于CGFloat的floatValue

PF1*_*PF1 5 cocoa slider

我有一个NSSlider试图将常规浮点数转换为CGFloat.我正在使用的代码:

CGFloat testing = [mainSlider floatValue];
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试记录它时,这只会使测试变量为"0.00".

NSLog(@"%f", testing);
Run Code Online (Sandbox Code Playgroud)

有没有人有任何想法为什么会发生这种情况?谢谢你的帮助.

Tom*_*ing 10

  1. 检查mainSlider是不是nil
  2. 试试这个以防万一(不记得CGFloat是否为双倍):

    NSLog(@"%f",(双)测试);

  3. 检查变量是否没有像这样被遮蔽:

    CGFloat testing = 0.0;
    if(YES){
        CGFloat testing = [mainSlider floatValue];
        //should be: testing = [mainSlider floatValue];
    }
    NSLog(@"testing = %f", testing); //this will print "testing = 0.000000"
    
    Run Code Online (Sandbox Code Playgroud)

  • 请注意,当`floatValue`将值转换为单精度时,转换为`double`将不会恢复任何精度损失.最好只使用`doubleValue`. (3认同)