Rick and I took a quick look at this problem. The problem is your input datasets are scaled bytes Analyze files; values stored as 255 are scaled down to 1 in this case. Writing out to NIFTI will use NIFTI if the data is determined to be non-integral. So a value of 0.99999 is not an integer, and a float type is assigned. You can work around this issue by either removing scale factors from the data input or the output with -nscale as in this example:
3dcalc -datum byte -nscale -a dset.hdr -expr 'int(a+0.5)' -prefix dset_byte