我有一个双精度,我只需要小数点之前的所有值。
目前我正在使用
NSString *level = [NSString stringWithFormat:@"%.1f",doubleLevel];
但是当给出值9.96时,返回“10”。所以它正在四舍五入。我需要它只返回“9”。 (注意 - 当值为9.95时,它会正确返回“9”值。)
有什么建议吗?
谢谢。
答案 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);
有各种各样的floor
和round
实现。
它们自UN * X开始就存在,并且实际上是这些低级库的一部分,无论是BSD,Posix还是其他类型的库 - 你应该熟悉它们。
浮点变量的不同“深度”有不同的版本。