[英]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.