【问题标题】:Losing accuracy with NSString floatValue?NSString floatValue 失去准确性?
【发布时间】:2012-05-14 09:00:01
【问题描述】:

我是 Objective-c 的初学者,我有一个小问题,我相信你会在两秒钟内解决:P

我在 StackOverflow 上搜索将 NSString 转换为浮点值,发现 [NSString floatValue] 可以帮助我尝试,但我不知道为什么我在点后丢失了所有值...

这里是我的问题的代码:

- (void)setTimerDetails:(NSString *)time {
    CCLOG(@"TEST1 = %@", time);
    CCLOG(@"TEST2 = %f", [time floatValue]);
    CCLOG(@"TEST3 = %f", ([time floatValue] / 60));
    self.test.progress = ([time floatValue] / 60);
    self.crono.text = time;
}

如您所见,它用于进度条:P

但是这里是日志:

2012-05-14 10:53:39.279 Colors[533:1be03] TEST1 = 58,733
2012-05-14 10:53:39.280 Colors[533:1be03] TEST2 = 58.00000
2012-05-14 10:53:39.280 Colors[533:1be03] TEST3 = 0.966667

为什么 TEST2 行的点后只有 0 ? :s

谢谢你们帮助我:)

【问题讨论】:

  • TEST1 = 58,733 使用的是逗号而不是小数点。
  • 是逗号还是点???
  • Test1 不是带有逗号的浮点数。
  • omg,谢谢大家,以为他能够同时处理这两个问题,但我错了:P

标签: objective-c ios nsstring type-conversion


【解决方案1】:

因为

Colors[533:1be03] TEST1 = 58,733

是 58,773 而不是 58.773

所以当它转向floatValue时,它只抓取“58”部分

【讨论】:

    猜你喜欢
    • 2013-01-28
    • 2016-08-17
    • 1970-01-01
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 2020-08-08
    • 2019-04-13
    相关资源
    最近更新 更多