NSString - 在double中小数点后截断所有内容

时间:2012-02-29 03:56:30

标签: iphone ios nsstring double truncate

我有一个双精度,我只需要小数点之前的所有值。

目前我正在使用

NSString *level = [NSString stringWithFormat:@"%.1f",doubleLevel];

但是当给出值9.96时,返回“10”。所以它正在四舍五入。我需要它只返回“9”。 (注意 - 当值为9.95时,它会正确返回“9”值。)

有什么建议吗?

谢谢。

4 个答案:

答案 0 :(得分:2)

只需将float / double值赋值为int值即可。

int intValue = doubleLevel;

答案 1 :(得分:1)

将那个婴儿当作一个int。

int castedDouble = doubleLevel;

双击中.之后的任何内容都将被截断。

9.1239809384 --> 9

123.90454980 --> 123

没有舍入,简单的截断。

答案 2 :(得分:0)

NSString *level = [NSString stringWithFormat:@"%d",doubleLevel];

答案 3 :(得分:0)

如果你想把它保持为浮动:

CGFloat f = 9.99;
f = floorf(f);

有各种各样的floorround实现。 它们自UN * X开始就存在,并且实际上是这些低级库的一部分,无论是BSD,Posix还是其他类型的库 - 你应该熟悉它们。

浮点变量的不同“深度”有不同的版本。