--- Отредактировано после комментария, который уточнил вопрос ---
Большинство баз данных округляют число, чтобы соответствовать формату. Я не уверен, является ли это стандартом SQL или просто обычной практикой среди поставщиков баз данных.
Если число слишком велико для хранения в базе данных (например, 123456.7), большинство баз данных выдаст ошибку, что число не может соответствовать точности. поля.
--- Исходный пост следует ---
Плавания не представляют точные значения данных, они просто представляют значения данных, которые могут быть должным образом представлены как сумма долей базы 2.
Например, 1,75 будет точно представимо, потому что это 1 + 1/2 + 1/4. Числа, подобные 1 и 1/3, не могут быть точно представлены, потому что никакая сумма дробей в форме 1/2 ^ n не может представлять 1/3.
С учетом этого, если это действительно критическая проблема, вам необходимо выполнить одно из следующих действий:
- Округлить (или обрезать) результат до ближайшего значения .1, .2, .3 и т. Д. Это по-прежнему будет иметь проблемы, но это лучше, чем ничего.
- Представьте число как целое число, и просто «запомните», что целое число - это число десятых, а не число единиц.
Банковские приложения часто используют вторую технику, чтобы исключить возможность дробного дробления и ошибки округления.