java - 表示电话号码的正确方法是什么?

标签 java integer phone-number

我在我的一个应用程序中表示手机号码时遇到问题。

我想知道是否有一个 Integer 类可以让您存储以 0417254482 开头的数字。也许使用字符串更合适? 目前,当我尝试使用整数表示电话号码时,我似乎存储的是随机数而不是我打算存储的数字。

最佳答案

使用 字符串。除此之外,如果您使用整数,您将无法存储前导零。您绝对不应该使用 int(太小)floatdouble(数据丢失风险太大 -见下文); longBigInteger 可能是合适的(除了前导零问题),但坦率地说,我会选择 String。这样,您可以存储用户输入的任何破折号或空格,以便更容易记住数字。

就上述 floatdouble 的“数据丢失”而言 - float 绝对没有足够的精度; double 可以工作,如果你很高兴你永远不需要超过 16 位数字(比你使用 long 得到的数字少几个)但是您需要非常非常小心地将值从 double 转换回 string 的任何位置,您都得到了确切的值。许多格式转换将为您提供一个近似值,该近似值可能精确到 10 位有效数字 - 但您需要一个精确的整数。基本上,对电话号码使用浮点是一个根本性的坏主意。如果您必须使用固定宽度的数字类型,请使用 long,但最好完全避免使用它。

关于java - 表示电话号码的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3483156/

相关文章:

java - 当我在 Android 中实例化文件时会发生什么?

java - 无法添加或更新子行 : a foreign key constraint fails Hibernate

java - 在android studio中集成AIML文件

Java Integer.valueOf 为范围内的有效数字生成 NumberFormatException

ios - MonoTouch 如何获取自己的电话号码和 Sim Id(SSID)?

php - 在线电话、调用转移和跟踪何时实现收入调用? |网站项目

java - 类对象的泛型

c++ - 如何检查输入是否是没有任何其他字符的有效整数?

objective-c - NSInvocation setArgument 不适用于简单的 int32_t

ios - 以编程方式将新电话号码添加到地址簿中的联系人(iPhone)