首页 文章

将数字格式化为字符串时删除整数位数

提问于
浏览
1

将数字格式化为字符串时,我可以限制小数点后的字符,例如 %.03f (在点后显示三位数),但如何在点之前删除所有数字?

例如,我希望 100.943 格式化为 ".943" .

4 回答

  • 1

    好的,我想我现在有了你的问题..

    这是另一种解决方案,您只能从字符串中获取字符串 .

    例:

    NSString *floatAsString = @"123.456";
    NSArray stringDivisions = [floatAsString componentsSeparatedByString:@"."];
    

    您将在数组中获得:123和456来分隔字符串对象 . 一旦你得到两个单独的字符串,你就可以玩它们 .

    这是你需要的吗?

  • 0

    简单的方法,这是一个例子,

    首先将您的字符串转换为浮点值 . 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

    希望这是你需要的 .

  • 2

    我认为你做到这一点的唯一方法就是使用数学删除小数点前的数字,或者事后的字符串操作,如 componentsSeparatedByString:@"."

    删除它的简单数学方法是:

    float initialValue = 100.943f;
    int beforeDecimal = (int)initialValue;
    float afterDecimal = initialValue - beforeDecimal;
    
  • 2

    使用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

相关问题