理想情况下,我应该使用什么来在我的MySQL数据库中存储汇率信息?我是否应该使用:
货币汇率通常是像1.2362这样的十进制数字。
发布于 2015-06-08 19:55:13
你需要有多精确?我之所以这样问,是因为这个问题可能超出了转换因子的存储格式。例如,规则可能是将因子保持为N小数位,对M位执行乘法(或除法),然后再循环。而“一轮”可能是“金融”- 0.5总是四舍五入,而不是IEEE-754,“整到最近的偶数”。
假设您可以在最后一个位置使用一个单元(美分或厘米或其他任何东西),我只需使用DOUBLE。
我假设您存储的转换因子不会超过100个,所以DOUBLE占用8个字节这一事实不会成为一个问题。如果你记录过去10年中每分钟的转换系数,我会重新考虑这个决定。
FLOAT给出了6-7个有效数字(并占用4个字节);DOUBLE给出了大约16个数字。12345、123.45和0.00012345各有5个“有效”数字。
对于货币本身,我认为今天任何一种货币的小数点的最高位数是4,也就是说,DECIMAL(nn, 4)应该足以存储货币。
然而,这并不能提供必要的四舍五入。
ROUND(currency1 * factor, decimals)如果目标货币为美元和欧元(以及许多其他货币),decimals为2。正如我在上面指出的,这可能与一家银行的计算值相差1分之多。
(你会称这为“基于意见”吗?还是别的什么更好的?)
https://stackoverflow.com/questions/30613925
复制相似问题