我使用BigDecimal
作为电话号码但不超过20位。我该怎么用?
if(loginDTO.getPhoneNumber()!=null && loginDTO.getPhoneNumber().length()>0){
userBO.setPhoneNo(new BigDecimal(loginDTO.getPhoneNumber()));
}
我想在这里取代BigDecimal
代替超过20个数字的东西。
答案 0 :(得分:6)
您根本不想使用任何数字格式的电话号码。例如 - 我住在汉堡/德国,所以我的本地号码是040-9999999
,而040
是我的区号。
但是,唉,没有十进制格式的前导零。
或国际格式:+49-40-9999999
或具有附加信息:+49-40-999999-99
。
或者只是想将数字格式化为组以便轻松拨号(您可能只想对显示部分执行此操作,因此该点仅半有效):
+49 40-999 999 ext 99
因为你从来没有用这些数字计算任何东西,所以省去麻烦。拿个字符串。
答案 1 :(得分:2)
由于区号和国家/地区代码格式化,将电话号码存储为数字数据类型可能不是一个好主意。另外,将它们存储为数字不会给你带来任何东西(你多长时间对一个电话号码进行数学运算)?
尝试将您的电话号码存储为字符串。
答案 2 :(得分:0)
您需要在String
变量中为电话号码建模。
将电话号码解释为号码可能会导致问题,例如,以0
开头的电话号码或管理国家/地区代码(+01
)。另外,你将摆脱长度问题。