Cómo redondear los valores flotantes

Table1

Id value

001 2.3
002 1.3
003 3
004 5.3
...
...

el tipo de datos de la columna de valor es flotante

Nota:

la columna de valor será .3 siempre, no vendrá como .1, .2, .4, .5 to .9

Ahora quiero mostrar .5 en lugar de .3 para todos los valores...

Rendimiento esperado

valor de identificación

001 2.5 
002 1.5
003 3
004 5.5
...
...

Cómo hacer una consulta para esto.

Necesita ayuda de consultas SQL

preguntado el 04 de julio de 12 a las 09:07

SELECT [value]+.2 FROM some_table -

2 Respuestas

Utiliza Redondas función para obtener su resultado

 Declare @Sample Table
 (ID int ,
 value float)

 Insert into @Sample
 values
(001,2.3),(002,1.4),(003,3),(004,5.3)

 Select ID,round(value/5,1)*5 from @Sample

Si el valor es superior a 3, se redondeará a 5 y si es inferior a 3, se recuperará el valor entero.

Respondido 04 Jul 12, 09:07

La lógica detrás es que cuando tiene 2 lugares decimales que puede redondear en función del segundo valor decimal, por ejemplo, 2, se redondeará a 2.38, por lo que, en función de eso, divida el número 2.4 entre 2.3, lo que le dará 5, que cuando se redondea. recuperará .46 y ahora nuevamente multiplica por 5, lo que le dará el resultado deseado: Praveen

En lógica simple, es obtener un recíproco perfecto y preciso. Por lo tanto, dividir y multiplicar números flotantes por 5 - Praveen

Puede usar la función de piso para averiguar si hay un componente decimal

Intente la siguiente consulta

update table1 set value = value + 0.2 
where value > floor(value);

Respondido 04 Jul 12, 09:07

¿Cuál es el error que estás recibiendo? Estoy usando SQLFiddle configurado para SQL-Server 2008 - Chetter Hummin

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.