我在我的一个应用程序中表示手机号码时遇到问题。
我想知道是否有一个 Integer 类可以让您存储以 0417254482 开头的数字。也许使用字符串更合适? 目前,当我尝试使用整数表示电话号码时,我似乎存储的是随机数而不是我打算存储的数字。
最佳答案
使用 字符串
。除此之外,如果您使用整数,您将无法存储前导零。您绝对不应该使用 int
(太小)float
或 double
(数据丢失风险太大 -见下文); long
或 BigInteger
可能是合适的(除了前导零问题),但坦率地说,我会选择 String
。这样,您可以也存储用户输入的任何破折号或空格,以便更容易记住数字。
就上述 float
和 double
的“数据丢失”而言 - float
绝对没有足够的精度; double
可以工作,如果你很高兴你永远不需要超过 16 位数字(比你使用 long
得到的数字少几个)但是您需要非常非常小心地将值从 double
转换回 string
的任何位置,您都得到了确切的值。许多格式转换将为您提供一个近似值,该近似值可能精确到 10 位有效数字 - 但您需要一个精确的整数。基本上,对电话号码使用浮点是一个根本性的坏主意。如果您必须使用固定宽度的数字类型,请使用 long
,但最好完全避免使用它。
关于java - 表示电话号码的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3483156/