【发布时间】:2017-04-29 11:57:07
【问题描述】:
我从未在数据库中使用过以下货币。我做了一些研究,告诉我你应该使用 Decimal 数据类型。请参阅下面的 DDL:
create table dbCurrency (id int not null identity, CurrencyValue decimal (4,2), primary key (id))
insert into dbCurrency (CurrencyValue) values (50);
insert into dbCurrency (CurrencyValue) values (20);
insert into dbCurrency (CurrencyValue) values (10);
insert into dbCurrency (CurrencyValue) values (5);
insert into dbCurrency (CurrencyValue) values (2);
insert into dbCurrency (CurrencyValue) values (1);
insert into dbCurrency (CurrencyValue) values (0.5);
insert into dbCurrency (CurrencyValue) values (0.2);
insert into dbCurrency (CurrencyValue) values (0.1);
insert into dbCurrency (CurrencyValue) values (0.05);
insert into dbCurrency (CurrencyValue) values (0.02);
insert into dbCurrency (CurrencyValue) values (0.01);
这会存储所有英国货币。这是正确的方法吗。我问的原因是因为与我交谈过的人建议数据类型应该是:decimal (5,2) 而不是decimal (4,2). He knew I was storing currencies up to £50.
另外,假设我有两个 C# 小数:
decimal first;
decimal second;
decimal third;
假设我想将第一个小数除以第二个小数得到第三个小数。第三个小数点也是 c# 十进制数据类型吗?第一个小数总是大于第二个,结果可能是小数。第一位和第二位小数是货币值。
【问题讨论】:
-
为什么他们建议你应该存储 5 位数,而明确表示你只会存储 4 位数?
-
@Rob,这就是我的困惑。
-
你问过他们吗?
-
@Rob,不幸的是,我只会在下周末再次见到他们。我现在需要开始这项工作。
-
Yor edit 是一个单独的问题,处理 C# 而不是 SQL。请照此张贴。
标签: sql sql-server