将数字格式化为字符串时,我可以限制小数点后的字符,例如 %.03f (在点后显示三位数),但如何在点之前删除所有数字?
%.03f
例如,我希望 100.943 格式化为 ".943" .
100.943
".943"
好的,我想我现在有了你的问题..
这是另一种解决方案,您只能从字符串中获取字符串 .
例:
NSString *floatAsString = @"123.456"; NSArray stringDivisions = [floatAsString componentsSeparatedByString:@"."];
您将在数组中获得:123和456来分隔字符串对象 . 一旦你得到两个单独的字符串,你就可以玩它们 .
这是你需要的吗?
简单的方法,这是一个例子,
首先将您的字符串转换为浮点值 . float x = 102.943; int y = x; float ans = x%y; NSLog(@“\ nx:%f \ ny:%d \ nans:%f”,x,y,ans);
所以输出将是:
x:102.943000 y:102 ans:0.943000
希望这是你需要的 .
我认为你做到这一点的唯一方法就是使用数学删除小数点前的数字,或者事后的字符串操作,如 componentsSeparatedByString:@"."
componentsSeparatedByString:@"."
删除它的简单数学方法是:
float initialValue = 100.943f; int beforeDecimal = (int)initialValue; float afterDecimal = initialValue - beforeDecimal;
使用NSNumberFormatter,并将其maximumIntegerDigits设置为0:
float f = 123.456; NSNumber * nF = [NSNumber numberWithFloat:f]; NSNumberFormatter * formatter = [[NSNumberFormatter alloc] init]; [formatter setMaximumIntegerDigits:0]; NSLog(@"%@", [formatter stringFromNumber:nF]);
2011-11-23 18:36:59.138 NoIntegerDigits [21834:903] .456
4 回答
好的,我想我现在有了你的问题..
这是另一种解决方案,您只能从字符串中获取字符串 .
例:
您将在数组中获得:123和456来分隔字符串对象 . 一旦你得到两个单独的字符串,你就可以玩它们 .
这是你需要的吗?
简单的方法,这是一个例子,
所以输出将是:
希望这是你需要的 .
我认为你做到这一点的唯一方法就是使用数学删除小数点前的数字,或者事后的字符串操作,如
componentsSeparatedByString:@"."
删除它的简单数学方法是:
使用NSNumberFormatter,并将其maximumIntegerDigits设置为0: