Delphi Real numbers give errors

Help!

I am writing (in Delphi, of course) a program to read data from my pricing database and generate
pricing information and quotes.  I calculate the inc. tax price as a part of the program (no, not
a calculated field!), but there is a major hassle with the code - it just don't work as it
should.

I have a DBText containing the Ex. Tax Price, a DBLookupCombo with the Sales Tax Percentage in it
(I don't want to have to enter the same 6 numbers over and over again...)  The calculated Inc.
Tax price is to go in a Label, and I use a DBNavigator to go through the database.

Now, I added this code as my TDataSource object's OnDataChange method:

procedure TMain_Form.Item_Data_SourceDataChange(Sender: TObject;
  Field: TField);
var
  Ex_Tax_Amount, Sales_Tax_Percentage, Inc_Tax_Amount:real;
  Error_Code:Integer;
  Temporary_String:String;
begin
  {Update the tax inc. price when the record or fields changes.}

  {Get the values into appropriate reals}
  Temporary_String:=Ex_Tax_Cost.DataSource.DataSet.FieldByName(Ex_Tax_Cost.DataField).AsString;
  Val(Temporary_String,Ex_Tax_Amount,Error_Code);
  Temporary_String:=Sales_Tax_Lookup_Combo.Text;
  Val(Temporary_String,Sales_Tax_Percentage,Error_Code);
  {Calculate the inc. tax price}
  Sales_Tax_Percentage:=Sales_Tax_Percentage + 100.0;
  Inc_Tax_Amount:=Ex_Tax_Amount * Sales_Tax_Percentage;
  Inc_Tax_Amount:=Trunc(Inc_Tax_Amount)/100;
  {Store it in a string}
  str(Inc_Tax_Amount:0:2,Temporary_String);
  Temporary_String:='$'+Temporary_String;
  {And put it in the box}
  Inc_Tax_Cost.Caption:=Temporary_String;
end;

In theory, that should update the Inc_Tax_Cost label's caption every time the data being
displayed changes at all.  But it doesn't seem to work, and the problem appears to be with the
real numbers.  Can anyone tell me what might be wrong here?

Cheers,

JB