2017-02-15 695 views
7

我們要存儲10位數的手機號碼,即.99999999999。它應該是int還是字符串數據類型?我們不想對此進行任何計算或操作操作哪個更好的內存和更好的性能?電話號碼應該是一個字符串還是整數?

+3

memory + performance = int。但是這樣少量的性能增益應該是您擔心的最小問題 – Steve

+1

一般來說,我只在需要對它們進行任何算術運算的數字上使用「int」,並且使用'string'作爲基本存儲它們的值碰巧是數字的文本。 – awh112

+2

如果您的用戶輸入號碼,而您不關心其正確性,那麼不要限制自己只存儲號碼,但也允許其他字符。字符串 – Steve

回答

15

ITU-T recommendation E.164表示您需要國家代碼的3位數字和國家/地區撥號計劃中的目錄號碼的最多15位數字。

而且,許多人添加了一些標點符號。例如:

+1.212.555.1212是北美數字。它也可以在北美中心的應用程序中呈現爲 (212)555-1212。

32個字符的文字應該在全球範圍內做到這一點。

請勿使用數字,否則您會後悔的。我是:兩件事。

  • 由於我們假設所有電話號碼均爲NANP-compliant十位數字,因此丟失了某家公司的某些歐洲業務。
  • 電子表格導出以科學計數法呈現數字2.12555E+09這幾乎與SIRI告訴我你有兩個大呼叫,一百二十五百萬...一樣愚蠢。

電話簿號碼不是數字數據類型。

+0

非常好的答案。謝謝。 – norbertpy

+0

是否有帶字母的電話號碼?電話號碼格式由位置決定,所以如果您正在收集電話號碼而不是位置,這是一個很好的答案。 – oMiKeY

+0

E.164不考慮字母,只有數字。和標點符號。但是,如果您使用文本字符串來表示目錄號碼,則無法阻止您使用字母。但是像「CEntral 2-1212」這樣的號碼簿號碼的日子已經一去不復返了。 –

2

它必須是一個string的電話號碼將超過int甚至long極限。所以爲了處理這些情況,string總是首選。

相關問題