我的域名注册商要求提供以下格式的电话号码:
+358.401234567
(其中 358
是国家/地区代码,40
是区号,其余是本地电话号码)。
对我个人来说,这种格式很陌生,除了 WHOIS 域名信息之外,我找不到它在任何地方使用。我试图找到任何对此特定格式规范的引用,但没有成功。也许ICANN要求这种格式,但我找不到任何证据。这个电话号码符号标准化了吗?
最令人担忧的是,从注册商的 REST API 获取此信息时,该值将以浮点形式返回,如下所示:
{ "phone": 358.401234567 }
。将值存储为浮点数而不是字符串时,这会导致舍入错误吗?
您应该使用字符串,而不是电话号码的数值。
如果在任何情况下,您需要一个数值,假设机器内部使用binary64格式(双精度),则可以将15位十进制数转换为binary64,并且您将检索原始值,如果您将二进制 64 数转换回 15 位十进制数。这是因为 1+15×log(10)/log(2) ⩽ 53(其中 53 是二进制 64 的精度)。如果电话号码的位数可变,请小心尾随零。