Мы переписываем нашу устаревшую систему учета в VB.NET и SQL Server. Мы привлекли новую команду программистов .NET / SQL для переписывания. Большая часть системы уже укомплектована суммами в долларах с использованием Float. У старого системного языка, который я запрограммировал, не было Float, поэтому я, вероятно, использовал бы десятичную дробь.
Какая ваша рекомендация?
Следует ли использовать тип данных Float или Decimal для сумм в долларах?
Каковы некоторые плюсы и минусы для любого из них?
Одна оговорка, упомянутая в нашей ежедневной схватке, заключалась в том, что вы должны быть осторожны, когда вычисляете сумму, которая возвращает результат, превышающий две десятичные позиции. Похоже, вам придется округлить сумму до двух знаков после запятой.
Еще один кон - все показы, и напечатанные суммы должны иметь оператор формата, который показывает две десятичные позиции. Я заметил несколько раз, где это не было сделано, и суммы не выглядели правильными. (т.е. 10,2 или 10,2546)
Профи - это то, что Float занимает всего 8 байт на диске, тогда как десятичное число будет занимать 9 байтов (десятичное 12,2)