gos*_*pps 1 c++ cocoa-touch objective-c ios
我知道要用零填充整数,我可以执行以下操作,
NSString*version = [NSString stringWithFormat:@"%03d",appVersion.intValue];
如果需要,这将在整数的左侧添加最多3个零.但是我想做同样的事情,但不是向左边填充,我需要向右边填充.
如何用零填充整数但是在整数的右边?(理想情况下与上述方法类似)
这是我需要的一个例子,
如果整数结果为38,我需要将版本字符串显示为380(整数末尾只添加一个零,因为我想要最多三个字符,如果整数小于三个字符,则为零将被添加为三个).
我目前使用的方法将给我038.我需要380.
或者如果整数是381,那么输出应该是381,因为我只想要最多三个字符.
你可以将该值乘以1000,然后打印出来吗?如果你需要大量的零,你通常可能希望将乘法推广int到a long或long long之前,以减少溢出的可能性.
NSString *version = [NSString stringWithFormat:@"%ld", ((long)appVersion.intValue)*1000];
Run Code Online (Sandbox Code Playgroud)
如果你需要int数字的长度,在决定乘以某个因子十之前,取值floor的十进制数log并加一.例如:
int foo = 123;
int digitsInFoo = floor(log10(foo)) + 1; /* 3 */
Run Code Online (Sandbox Code Playgroud)
然后使用一些规则来决定要添加多少个零数字.
int totalDesiredLength = 5;
int numberOfZeroesNeeded = totalDesiredLength - digitsInFoo; /* this assumes totalDesiredLength >= digitsInFoo */
int factor = (int) pow(10, numberOfZeroesNeeded); /* 100 */
Run Code Online (Sandbox Code Playgroud)
那么五位数的结果将是foo * factor或12300.您可以根据需要根据您的情况进行调整.测试边界,这样你就不会得到奇怪的结果.
| 归档时间: |
|
| 查看次数: |
221 次 |
| 最近记录: |