2012-06-20 7 views

ответ

22

В TSQL вы можете указать два разных размера для float, 24 или 53. Это задает точность 7 или 15 цифр соответственно.

Если все, что вы хотите сделать, это усечение до заданного числа знаков после запятой, вы можете использовать ROUND, то есть:

ROUND(AVG(CAST(e.employee_level as float)), 3) 
+2

Следует учитывать, что если вы используете float (n) для некоторого n, кроме 24 или 53, он округляется до 24 или 53 – Bort

1

Как правило, вы не можете указать количество цифр после десятичная точка для числа с плавающей запятой. Типы данных с плавающей точкой хранят ближайшее приближение с плавающей запятой к любому заданному значению. Ближайшее приближение с плавающей запятой вряд ли будет иметь количество цифр, которое вы хотите. Хотя вы могли бы подавить каждую цифру после третьей, это изменит внешний вид значения, а не самого значения.

Цели - это совсем другая история. Целое число - сохраненное, преобразованное или преобразованное в тип данных с плавающей точкой - будет храниться точно в большом диапазоне. Для типов данных с плавающей точкой не нужно хранить какие-либо дробные единицы для целых чисел.

Я хотел бы предложить, хотя это лучшая практика для вас является

  • ИЗБЕЖАТЬ литья целых чисел с плавающей точкой, если вам не нужны дробные единицы, или
  • литые целые числа в десятичную или цифровой если вы do нужны дробные единицы, или
  • проблема с отображением вывода полностью в коде приложения.