Database 如何在内部表示数字格式?

Database 如何在内部表示数字格式?,database,internationalization,number-formatting,Database,Internationalization,Number Formatting,最近,我开始研究我项目的一些国际化方面,我需要建立一个用户偏好,以习惯的格式显示数字(阿拉伯数字) 我在网上做了一些研究,尽管令人惊讶地缺乏可靠的标准文档,但我发现其中概括了7种格式。这是一个很好的起点 问题是,我如何在内部表示/存储这些格式?格式化数字应该只在视图级别执行,因此只需将它们存储为常规整数(或浮点,取决于您的需要) 然后,仅当需要显示它们时,才根据当前区域设置对其进行格式化 为了将它们存储在数据库中,因为格式是由十进制分隔符(“或”)和千位分隔符(“或”、“或”或“无”)定义的,所

最近,我开始研究我项目的一些国际化方面,我需要建立一个用户偏好,以习惯的格式显示数字(阿拉伯数字)

我在网上做了一些研究,尽管令人惊讶地缺乏可靠的标准文档,但我发现其中概括了7种格式。这是一个很好的起点


问题是,我如何在内部表示/存储这些格式?

格式化数字应该只在视图级别执行,因此只需将它们存储为常规整数(或浮点,取决于您的需要)

然后,仅当需要显示它们时,才根据当前区域设置对其进行格式化

为了将它们存储在数据库中,因为格式是由十进制分隔符(“或”)和千位分隔符(“或”、“或”或“无”)定义的,所以我只使用两个简单的varchar列,例如format_dec_septor和format_千位分隔符来表示格式


如果某些格式不能分隔千,可以使用空字符串分隔符。

是的,当然在渲染时进行格式化。我说的是存储数字应该格式化的“格式”。例如,1000可以格式化为“1000.00”或“1.000,00”,这是用户可配置的,而不仅仅是基于区域设置。所以我需要一个格式的表示,并将其与用户的偏好一起存储。@Xavier_Ex,啊,我明白你的意思了。由于格式是由十进制分隔符(“或”)和千位分隔符(“或”、“或”或“无”)定义的,所以我只使用两个简单的varchar列,例如format_dec_SEPTOR和format_千位分隔符来表示格式。这是一个有趣的视角。但我们还需要记住,并不是所有格式都以千为单位分隔数字,所以我也不能假设……在这种情况下,千分隔符将只是一个空字符串。@Xavier_Ex我只会对所有已知的可能性进行编号(如果出现一种情况,请根据请求添加更多)。两个列听起来不错(正常形式和其他形式),但我认为这是一种过度杀伤力(两个分隔符都应该使用
VARCHAR(2)
)。重要的是:/编写一个类来处理它,这样格式的解释就不会分散在代码中。*这样,更改就变得微不足道了。