sql

您所在的位置:网站首页 数据类型money型怎么写 sql

sql

2024-06-27 20:03| 来源: 网络整理| 查看: 265

当您需要对值进行乘法/除法时,您不应该使用金钱。货币的存储方式与存储整数的方式相同,而十进制存储为小数点和小数位。这意味着货币在大多数情况下会降低准确性,而小数只有在转换回其原始比例时才会这样做。金钱是定点的,所以它的规模在计算过程中不会改变。但是,由于它在打印为十进制字符串时是固定点(而不是作为以 2 为底的字符串中的固定位置),因此可以精确表示高达 4 的值。所以对于加法和减法,钱是可以的。

小数在内部以 10 为基数表示,因此小数点的位置也基于以 10 为基数的数字。这使得它的小数部分准确地代表了它的价值,就像金钱一样。不同之处在于 decimal 的中间值可以保持高达 38 位的精度。

对于浮点数,该值以二进制形式存储,就好像它是一个整数一样,十进制(或二进制,嗯)点的位置是相对于表示该数字的位的。因为它是二进制小数点,所以以 10 为基数的数字在小数点后失去精度。1/5 或 0.2 不能以这种方式精确表示。金钱和小数都不受此限制。

很容易将货币转换为十进制,执行计算,然后将结果值存储回货币字段或变量中。

从我的 POV 来看,我希望发生在数字上的事情会发生,而不必考虑太多。如果所有计算都将转换为十进制,那么对我来说,我只想使用十进制。我会保存钱字段以用于显示目的。

从尺寸上看,我没有看到足以改变主意的差异。Money 占用 4 - 8 个字节,而十进制可以是 5、9、13 和 17。这 9 个字节可以覆盖 8 个字节的 money 可以覆盖的整个范围。索引方式(比较和搜索应该是可比较的)。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3