Pete,
A floating point number is 32-bits, made up of 23 bits for the
mantissa, 8 bits for exp and 1 sign bit. It will also round up to
the nearest even value. I don't know if this is exactly what you
are looking for but this is the information that I have.
- Irene
--- In , "Pete Becher" <pbecher@d...>
wrote: > Hi All,
>
> Anyone know what the accuracy and/or precision of floating point math > is on the DSP56F80x processors when using
CodeWarrior? I have been > having a lot of problems getting accurate results
from "simple math" . >
> I get a lot of values that look like this, 1.029999 and .4900002,
> when they should be 1.030000 and .4900000. A typical formula used > may be as shown below.
>
> fFoffTime -= (1.0f / fOnOffDpPow);
>
> Where all vars are floats and fFoffTime is being incremented or
> decremented by 0.01. When fOnOffDpPow = 100.0 the debugger show it's > hex value as 0x42C80001 where all the float-to-hex
converters I have > tried show the value as 0x42C80000. Will
differences like that add > up to the errors I am seeing? If I force
fOnOffDpPow to be
> 0x42C80000 in the debugger I still have problems.
>
> Is this just the way it is or are there settings or programming
> methods that can improve floating point calculations.
>
> Help Appreciated.
> Pete
Reply by isierra95●August 27, 20032003-08-27
Pete,
A floating point number is 32-bits, made up of 23 bits for the
mantissa, 8 bits for exp and 1 sign bit. It will also round up to
the nearest even value. I don't know if this is exactly what you
are looking for but this is the information that I have.
- Irene
--- In , "Pete Becher" <pbecher@d...>
wrote: > Hi All,
>
> Anyone know what the accuracy and/or precision of floating point math > is on the DSP56F80x processors when using
CodeWarrior? I have been > having a lot of problems getting accurate results
from "simple math" . >
> I get a lot of values that look like this, 1.029999 and .4900002,
> when they should be 1.030000 and .4900000. A typical formula used > may be as shown below.
>
> fFoffTime -= (1.0f / fOnOffDpPow);
>
> Where all vars are floats and fFoffTime is being incremented or
> decremented by 0.01. When fOnOffDpPow = 100.0 the debugger show it's > hex value as 0x42C80001 where all the float-to-hex
converters I have > tried show the value as 0x42C80000. Will
differences like that add > up to the errors I am seeing? If I force
fOnOffDpPow to be
> 0x42C80000 in the debugger I still have problems.
>
> Is this just the way it is or are there settings or programming
> methods that can improve floating point calculations.
>
> Help Appreciated.
> Pete
Reply by Pete Becher●August 27, 20032003-08-27
Hi All,
Anyone know what the accuracy and/or precision of floating point math
is on the DSP56F80x processors when using CodeWarrior? I have been
having a lot of problems getting accurate results from "simple math"
.
I get a lot of values that look like this, 1.029999 and .4900002,
when they should be 1.030000 and .4900000. A typical formula used
may be as shown below.
fFoffTime -= (1.0f / fOnOffDpPow);
Where all vars are floats and fFoffTime is being incremented or
decremented by 0.01. When fOnOffDpPow = 100.0 the debugger show it's
hex value as 0x42C80001 where all the float-to-hex converters I have
tried show the value as 0x42C80000. Will differences like that add
up to the errors I am seeing? If I force fOnOffDpPow to be
0x42C80000 in the debugger I still have problems.
Is this just the way it is or are there settings or programming
methods that can improve floating point calculations.