[英]Simple question about int
好的....这似乎是一个简单的问题,但我找不到有关它的任何信息,所以我想在这里问。
我正在尝试在var中存储数字(int),但我需要在它之前保留0
例如:
int x = 0001;
NSLog(@"%i",x) // returns 1
是否可以使其返回0001?
我知道我可以这样做:
NSLog(@"%04i",x); // returns 0001
但这并不是我要找的答案,因为0的数量需要变化。
我不需要特别使用int,但它需要是整数。
前导0无关紧要,将它们相加会使数字成为八进制文字 ,因此您不能在未指定宽度的情况下记录它们。 但是,您可以指定要打印的动态宽度。
int dyn_width = 4;
int x = 1;
NSLog(@"%0*i", dyn_width, x);
如果需要字符串而不是值,则需要使用字符串变量。
NSString *x = @"0001";
NSLog(@"%@",x);
然后,当您需要进行一些计算时,请使用“ [x intValue]”。
除了使用不需要的字符串外,我看到的在第一个有效数字之前编码0的数量的唯一方法是将值存储为double
,即0.0001
。 当然,在某些情况下,精度可能是个问题,更不用说对这种整数表示形式进行算术变得更加困难了。
我认为您要显示的零个数不是模型的一部分(实际的后备存储, int
),而是表示的一部分(因此是一个将int
并以某种方式显示出来的函数)。
无论如何,初等数学会告诉我们1
与01
是相同的数字,因此很难说服计算机。
您有两个选择-创建一个同时包含int值(1),padding-count(3)和padding类型(零)的对象,或使用字符串。 使用字符串以后可能会引起其他问题(验证,您是否可以停止代码的其他部分在其中放置文本之类的字符串数据?)
但是,真正的问题是,您为什么要这样做..当然还有另一种方法? 代码重构时间!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.