I'm using BinaryReader to read some floats off of a file and put them in a DataGrid. I saved the file back using the data that I got in the DataGrid without making any changes, and when doing a binary compare of the original and the saved files, I noticed that any negative zeros (0x00000080 in little-endian) were being transformed into positive zeros (0x00000000). I know it probably won't hurt, but maybe there's a reason negative zeros are saved like that, so I'm asking whether there's a way to handle negative zeros as they are.
Do I have to override ReadSingle and ReadDouble and do my own conversions? Is there a way to make sure a float remains a negative zero even after being put into a DataGridColumn with typeof(float), and then saved correctly back in the resulting file using a BinaryWriter?