- 註冊時間
- 2006-3-13
- 最後登錄
- 2025-1-10
- 在線時間
- 673 小時
- 閱讀權限
- 200
- 積分
- 417
- 帖子
- 1107
- 精華
- 0
- UID
- 2
  
|
VAT or Value Added Tax is a common form of taxation in the European Union (EU). VAT is added on top of the cost of a product or service and generates revenue for a government.- type TVATCalculator = class
- private
- fVatRate: double;
- public
- property VatRate : double read fVatRate;
- constructor Create (const vatValue : double) ;
- function Vat(const netValue : double) : double;
- function Gross(const netValue : double) : double;
- function Net(const grossValue : double) : double;
- function VatFromGross(const grossValue : double) : double;
- function NetFromVat(const vatValue : double) : double;
- function GrossFromVat(const vatValue : double) : double;
- end;
- implementation
-
- constructor TVATCalculator.Create(const vatValue: double) ;
- begin
- fVatRate := vatValue;
- end;
-
- function TVATCalculator.Gross(const netValue: double): double;
- begin
- result := netValue + Vat(netValue) ;
- end;
-
- function TVATCalculator.GrossFromVat(const vatValue: double): double;
- begin
- result := vatValue + NetFromVat(vatValue) ;
- end;
-
- function TVATCalculator.Net(const grossValue: double): double;
- begin
- result := 100 / (100 + VatRate) * grossValue;
- end;
-
- function TVATCalculator.NetFromVat(const vatValue: double): double;
- begin
- result := vatValue * 100 / VatRate;
- end;
-
- function TVATCalculator.Vat(const netValue: double): double;
- begin
- result := VatRate * netValue / 100 ;
- end;
-
- function TVATCalculator.VatFromGross(const grossValue: double): double;
- begin
- result := grossValue - Net(grossValue) ;
- end;
複製代碼 使用方式- var
- vc : TVATCalculator;
- valueIn : double;
- begin
- valueIn := StrToFloat(edValue.Text);
- vc := TVATCalculator.Create(StrToFloat(edVat.Text));
- try
- edVat.Text := FormatFloat(',.00',vc.Vat(valueIn));
- edGross.Text := FormatFloat(',.00',vc.Gross(valueIn));
- edNet.Text := FormatFloat(',.00',vc.Net(valueIn));
- edVatFromGross.Text := FormatFloat(',.00',vc.VatFromGross(valueIn));
- edNetFromVat.Text := FormatFloat(',.00',vc.NetFromVat(valueIn));
- edGrossFromVat.Text := FormatFloat(',.00',vc.GrossFromVat(valueIn));
- finally
- vc.Free;
- end;
- end;
複製代碼 執行畫面
用 5% 計算 100 的結果
資料來源 http://delphi.about.com/od/delph ... -vat-calculator.htm |
|