Как изменить номер?
i will try to after 4 decimal point? DECLARE @tbl TABLE (val float) INSERT INTO @tbl SELECT 12.19 INSERT INTO @tbl SELECT 13.92 INSERT INTO @tbl SELECT 14.47 INSERT INTO @tbl SELECT 18.025 INSERT INTO @tbl SELECT 18.3 INSERT INTO @tbl SELECT 17.79 INSERT INTO @tbl SELECT 18.13 INSERT INTO @tbl SELECT 15.245 INSERT INTO @tbl SELECT 12.485 INSERT INTO @tbl SELECT 11.365 INSERT INTO @tbl SELECT 18.26 INSERT INTO @tbl SELECT 15.44 INSERT INTO @tbl SELECT 19.13 INSERT INTO @tbl SELECT 15.59 INSERT INTO @tbl SELECT 28.695 INSERT INTO @tbl SELECT 29.35 INSERT INTO @tbl SELECT 15.27 INSERT INTO @tbl SELECT 15.895 INSERT INTO @tbl SELECT 26.51 SELECT *,((abs(val)*10000) - CONVERT(INT,(abs(val)*10000))),cast(val*power(10,4) as int),val*power(10,4) from @tbl
Что я уже пробовал:
Но только одно число большая часть путаницы
Выберите (тормозов(ABS(литой(18.26 как поплавок))*10000) - преобразования(ИНТ(АБС(литой(18.26 как поплавок))*10000)))
OriginalGriff
Это не очень хороший вопрос - мы не можем понять из этого малого, что вы пытаетесь сделать.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы. Поэтому мы понятия не имеем, какое число вы хотите изменить или на что вы пытаетесь его изменить ...
Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.
jsc42
Я не совсем понимаю, чего вы добиваетесь. Вы пытаетесь усечь числа в местах 4 декабря или отобразить их с помощью мест 4 декабря? Пожалуйста, сообщите нам ожидаемый результат и фактический результат.
Я попробовал ваш код в SQLServer, и ваш 2-й col выдает нули для всех значений, кроме 18.26, что дает 2.91038304567337 E - 11, который почти равен нулю-это будет ошибка округления. Float всегда будет давать неточные значения, так как двоичное значение является только приближением десятичного значения, которое вы должны знать при работе со значениями float (на любом языке, а не только на SQL). Все значения будут иметь ошибки округления, но некоторые из них будут слишком малы для отображения, поэтому они будут показаны как 0.