代码之家  ›  专栏  ›  技术社区  ›  croceldon

如何使用Delphi的ascurrency来显示没有货币符号的货币?

  •  2
  • croceldon  · 技术社区  · 15 年前

    我试图在网格中显示货币值,但不希望显示货币符号:

    if fPreferences.WorksheetFormat = 'Numeric' then
    begin
      CurrencyString := '';
      Value := FieldByName('UnitList').AsCurrency;
    end else
      Value := CurrToStrF(FieldByName('UnitList').AsCurrency, ffCurrency, 2, langFormat);
    

    问题是它仍然显示货币符号。我在这里做错什么了?我认为我不能使用currtostrf,因为我需要网格将数字导出到Excel,而不是字符串。或者,有没有什么方法可以使用asfloat,但必须保留小数点?(100)

    3 回复  |  直到 14 年前
        1
  •  4
  •   Francesca    15 年前

    CurrencyString := ''; 影响以下所有格式 使用默认格式 字符串,因此应该 显示 所有货币变量/字段值 没有$符号 ,同时 保留其数字性质 .

    但是当你 明确地 货币值格式 您自己的t格式设置 语言格式,它有 没有效果,除非你以前做过 :

    langFormat.CurrencyString := '';
    
        2
  •  2
  •   C Harmon    15 年前

    将ffcurrency更改为fffixed应该去掉货币符号,但不会有任何数百个分隔符。

    //带分隔符

    sstrvar:=formatcurr(',0.00',currvar);

        3
  •  0
  •   vcldeveloper    14 年前

    一个非常简单的解决方案是自己更改currencyString 以后再改回原值。

    if fPreferences.WorksheetFormat = 'Numeric' then
    begin
      CurrencyString := '';
      Value := FieldByName('UnitList').AsCurrency;
    end else
      begin
        OldCurrStr := CurrencyString;
        CurrencyString := '';
        Value := CurrToStrF(FieldByName('UnitList').AsCurrency, ffCurrency, 2, langFormat);
        CurrencyString := OldCurrStr;
      end;