2 for 2012 for_2012 于 2013.05.07 16:27 提问

UILabel的测试格式问题

在项目中有UILabel,想要显示特定形式的的labeltext:

input:  10        100        1000       2345565

output:00010.0   00100.0  01000.0  2345565.0

应该怎么实现?

3个回答

zhanglei5415
zhanglei5415   Rxr 2013.05.07 16:42
已采纳

我这里有一个在数前面补0的一个方法

+(NSString *)pad:(int)num length:(int) n {
    NSString *str=[NSString stringWithFormat:@"%d",num];
    int len=str.length;
    while (len++<n) {
        str=[NSString stringWithFormat:@"0%@",str];
    }
    return str;
}

其中参数n 代表了补0后的总长度
如 10 -> 00010

NSLog(@"convert result:%@",[Utils pad:10 length:5]);

KindAzrael
KindAzrael   2013.05.07 22:28

运行下面段代码 就会懂

  double input[] = {10, 100, 1000, 2345565};
  for (int i = 0; i < 4; i++) {
    //%07.1f中 “7”表示整数部分至少5位(7-小数1位-小数点一位)不够的话用前导0填充,“。1”表示精确到小数点后1位
    NSLog(@"%07.1f", input[i]);
  }

结果
2013-05-07 22:24:55.460 00010.0
2013-05-07 22:24:55.462 00100.0
2013-05-07 22:24:55.463 01000.0
2013-05-07 22:24:55.463 2345565.0

g989_1314125
g989_1314125   2013.05.07 17:22

也可以这样试试看

如果n的值超出5位数,返回的值相同。如果不是,就在值前边补0

 int n=100000000;//here pass the n value what ever you want.
    NSString *lblText = [NSString stringWithFormat:@"%05d.0", n];
    yourLabel.text=lblText;

输出:

10     00010.0
456    00456.0
123456 123456.0
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!