加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在Delphi中,您如何以不同的形式显示不同货币的货币数据类型?

发布时间:2020-12-15 04:14:55 所属栏目:大数据 来源:网络整理
导读:我需要编写一个Delphi应用程序,从数据库中的各个表中提取条目,不同的条目将使用不同的货币.因此,我需要为每种货币数据类型($,Pounds,Euros等)显示不同数量的小数位和不同的货币字符,具体取决于我加载的商品的货币. 有没有办法几乎全局改变货币,也就是说,表格
我需要编写一个Delphi应用程序,从数据库中的各个表中提取条目,不同的条目将使用不同的货币.因此,我需要为每种货币数据类型($,Pounds,Euros等)显示不同数量的小数位和不同的货币字符,具体取决于我加载的商品的货币.

有没有办法几乎全局改变货币,也就是说,表格中显示的所有货币数据?

解决方法

即使使用相同的货币,您也可能必须使用不同的格式显示值(例如分隔符),因此我建议您仅将LOCALE与货币相关联而不是货币.
您可以使用简单的Integer来保存LCID(区域设置ID).
请参阅此处的列表: http://msdn.microsoft.com/en-us/library/0h88fahh.aspx

然后要显示值,请使用以下内容:

function CurrFormatFromLCID(const AValue: Currency; const LCID: Integer = LOCALE_SYSTEM_DEFAULT): string;
var
  AFormatSettings: TFormatSettings;
begin
  GetLocaleFormatSettings(LCID,AFormatSettings);
  Result := CurrToStrF(AValue,ffCurrency,AFormatSettings.CurrencyDecimals,AFormatSettings);
end;

function USCurrFormat(const AValue: Currency): string;
begin
  Result := CurrFormatFromLCID(AValue,1033); //1033 = US_LCID
end;

function FrenchCurrFormat(const AValue: Currency): string;
begin
  Result := CurrFormatFromLCID(AValue,1036); //1036 = French_LCID
end;

procedure TestIt;
var
  val: Currency;
begin
  val:=1234.56;
  ShowMessage('US: ' + USCurrFormat(val));
  ShowMessage('FR: ' + FrenchCurrFormat(val));
  ShowMessage('GB: ' + CurrFormatFromLCID(val,2057)); // 2057 = GB_LCID
  ShowMessage('def: ' + CurrFormatFromLCID(val));
end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读