My guess is that you are getting your data from FoxPro using ODBC, in which
case the problem you describe does occur. In essence when a mergefield
contains more than 1 number separated by spaces, and you add a numeric
format switch, Word adds the numbers together.
So if localval was 123.9, which comes through to word as "123 9", {
MERGEFIELD localval \#0 } would result in 132.
If you are using quite old format .dbf tables, you may be able to get your
daya via Jet, which may return the data correctly.
otherwise, the simplest fix is likely to be to get the data via OLE DB, but
whether or not that works may depend on the version of FoxPro used to create
your files. To use OLE DB, you first need to download the OLE DB provider
from the MS download site, install it (and you may or may not agree with the
licensing terms). Then, when you connect to your data source, in the Select
Data Source dialog box, click New Source, select the Other/Advanced optin,
select the Microsoft OLE Db Provider for Visual FoxPro, and go through the
dialogs. Eventually you get to connect to a table in your data source. Word
saves the connection information in a .odc file, then you connect in future
via that.
And I say simplest because the alternatives are probably significantly more
complicated.
e.g., you can connect using ODBC via MS Query, and specify a SQL query that
converts your number to text (which, paradoxically perhaps, Word will then
understand), e.g. if you have a single number mynumber, you can use
SELECT str(mynumber,10,2) as mynumber FROM mytable
Or you could even engineer to calculate the result using Word fields, but
it's probably best not to go there unless all else fails.
Difficult to tell which way would be best for your situation, but perhaps
worth trying the OLE DB approach anyway.