Numero Decimal

22/04/2004 - 00:56 por Julio | Informe spam
Hola Grupo

Necesito tener por los menos tres o dos dígitos en esta sentencia y el
resultado que me trae es erróneo.

Es decir tengo una tabla con dos campos y creo una vista para tener un campo
que contenga como resultado la formula que se nuestra en el código

Donde Suma2 = Suma entre la raíz cuadrada de suma al cuadrado + suma1 al
cuadrado. Ahora el resultado que devuelve contiene muchos dígitos después
del punto y me interesa por lo menos tres o dos.

Cuando resto este resultado de 0.9 me da un valor erróneo




Create table Test1
(Suma decimal,suma1 numeric)
GO
Insert into Test1
(Suma,Suma1)
Values (35746,21471)
GO
Create View Pepe
AS
select Suma,Suma1, Suma / sqrt(SQUARE(Suma) + SQUARE(Suma1))As Suma2
from Test1
GO
Select CASE WHEN Suma2 < 0.9 THEN 0.9 - Suma2
ELSE Suma2 END AS Suma2
FROM Pepe

Preguntas similare

Leer las respuestas

#1 Jose Mariano Alvarez \(MUG\)
22/04/2004 - 11:34 | Informe spam
Por que dices que esta mal el resultado?
Para mi esta bien.


Te sugiero que uses numeros de punto flotante para este tipo de operaciones
Los tipopos de dato son Float y Real.




Jose Mariano Alvarez
jose (.) alvarez * *Arroba* * mug (.) org (.) ar
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar


.
"Julio" wrote in message
news:OsKwHQ$
Hola Grupo

Necesito tener por los menos tres o dos dígitos en esta sentencia y el
resultado que me trae es erróneo.

Es decir tengo una tabla con dos campos y creo una vista para tener un


campo
que contenga como resultado la formula que se nuestra en el código

Donde Suma2 = Suma entre la raíz cuadrada de suma al cuadrado + suma1 al
cuadrado. Ahora el resultado que devuelve contiene muchos dígitos después
del punto y me interesa por lo menos tres o dos.

Cuando resto este resultado de 0.9 me da un valor erróneo




Create table Test1
(Suma decimal,suma1 numeric)
GO
Insert into Test1
(Suma,Suma1)
Values (35746,21471)
GO
Create View Pepe
AS
select Suma,Suma1, Suma / sqrt(SQUARE(Suma) + SQUARE(Suma1))As Suma2
from Test1
GO
Select CASE WHEN Suma2 < 0.9 THEN 0.9 - Suma2
ELSE Suma2 END AS Suma2
FROM Pepe


Respuesta Responder a este mensaje
#2 Julio
22/04/2004 - 14:50 | Informe spam
Hola José, si veo que el resultado es el mismo, ahora bien lo que busco es
no tener tanto numero decimales. Lo que sucede es que ese resultado que me
da Suma2 menos 0.9 se multiplicara por una cantidad específica que el
resultado será dinero.

El resultado de la formula se puede limitar a que me devuelva la cantidad de
decimales que yo quisiera?



Es decir:

select Suma,Suma1, Suma / sqrt(SQUARE(Suma) + SQUARE(Suma1))As Suma2
from Test1 = 0.85724525197764734 (Suma2)



Se puede tener algo como: 0.857



Luego 0.9-0.857 = 0.043



Luego multiplicare este numero 0.043 * 29810.515 = 1281.852145



A diferencia de esto 0.9 - 0.85724525197764734 = 4.2754748022352684E-2



Luego 4.2754748022352684E-2 * 29810.515 = 1274.5410572415651

En realidad quiero trabajar con menos decimales después del punto.



Ahora bien si en un futuro puede traer problema la transformación prefiero
trabajar con ellos con esta cifras enormes









Create view pepe1
AS
select Suma,Suma1, Suma / sqrt(SQUARE(Suma) + SQUARE(Suma1))As Suma2
from Test1 = 0.85724525197764734 (Suma2)

Ahora el resultado de esta operacion:
Select CASE WHEN Suma2 < 0.9 THEN 0.9 - Suma2
ELSE Suma2 END AS Suma2
FROM Pepe1 = 4.2754748022352684E-2

Donde deveria de ser 0.9 - 0.85724525197764734 = 0.04275474802235266









"Jose Mariano Alvarez (MUG)" <jose.alvarez * *Arroba* * mug.org.ar> wrote in
message news:
Por que dices que esta mal el resultado?
Para mi esta bien.


Te sugiero que uses numeros de punto flotante para este tipo de


operaciones
Los tipopos de dato son Float y Real.




Jose Mariano Alvarez
jose (.) alvarez * *Arroba* * mug (.) org (.) ar
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar


.
"Julio" wrote in message
news:OsKwHQ$
> Hola Grupo
>
> Necesito tener por los menos tres o dos dígitos en esta sentencia y el
> resultado que me trae es erróneo.
>
> Es decir tengo una tabla con dos campos y creo una vista para tener un
campo
> que contenga como resultado la formula que se nuestra en el código
>
> Donde Suma2 = Suma entre la raíz cuadrada de suma al cuadrado + suma1 al
> cuadrado. Ahora el resultado que devuelve contiene muchos dígitos


después
> del punto y me interesa por lo menos tres o dos.
>
> Cuando resto este resultado de 0.9 me da un valor erróneo
>
>
>
>
> Create table Test1
> (Suma decimal,suma1 numeric)
> GO
> Insert into Test1
> (Suma,Suma1)
> Values (35746,21471)
> GO
> Create View Pepe
> AS
> select Suma,Suma1, Suma / sqrt(SQUARE(Suma) + SQUARE(Suma1))As Suma2
> from Test1
> GO
> Select CASE WHEN Suma2 < 0.9 THEN 0.9 - Suma2
> ELSE Suma2 END AS Suma2
> FROM Pepe
>
>


Respuesta Responder a este mensaje
#3 Julio
22/04/2004 - 15:01 | Informe spam
Otra razon por lo cual lo necesito en decinal reducido es porque tengo que
presentar este numero como estadisticas





"Julio" wrote in message
news:
Hola José, si veo que el resultado es el mismo, ahora bien lo que busco es
no tener tanto numero decimales. Lo que sucede es que ese resultado que me
da Suma2 menos 0.9 se multiplicara por una cantidad específica que el
resultado será dinero.

El resultado de la formula se puede limitar a que me devuelva la cantidad


de
decimales que yo quisiera?



Es decir:

select Suma,Suma1, Suma / sqrt(SQUARE(Suma) + SQUARE(Suma1))As Suma2
from Test1 = 0.85724525197764734 (Suma2)



Se puede tener algo como: 0.857



Luego 0.9-0.857 = 0.043



Luego multiplicare este numero 0.043 * 29810.515 = 1281.852145



A diferencia de esto 0.9 - 0.85724525197764734 = 4.2754748022352684E-2



Luego 4.2754748022352684E-2 * 29810.515 = 1274.5410572415651

En realidad quiero trabajar con menos decimales después del punto.



Ahora bien si en un futuro puede traer problema la transformación prefiero
trabajar con ellos con esta cifras enormes









Create view pepe1
AS
select Suma,Suma1, Suma / sqrt(SQUARE(Suma) + SQUARE(Suma1))As Suma2
from Test1 = 0.85724525197764734 (Suma2)

Ahora el resultado de esta operacion:
Select CASE WHEN Suma2 < 0.9 THEN 0.9 - Suma2
ELSE Suma2 END AS Suma2
FROM Pepe1 = 4.2754748022352684E-2

Donde deveria de ser 0.9 - 0.85724525197764734 = 0.04275474802235266









"Jose Mariano Alvarez (MUG)" <jose.alvarez * *Arroba* * mug.org.ar> wrote


in
message news:
> Por que dices que esta mal el resultado?
> Para mi esta bien.
>
>
> Te sugiero que uses numeros de punto flotante para este tipo de
operaciones
> Los tipopos de dato son Float y Real.
>
>
>
>
> Jose Mariano Alvarez
> jose (.) alvarez * *Arroba* * mug (.) org (.) ar
> Comunidad de base de datos
> Grupo de Usuarios Microsoft
> www.mug.org.ar
>
>
> .
> "Julio" wrote in message
> news:OsKwHQ$
> > Hola Grupo
> >
> > Necesito tener por los menos tres o dos dígitos en esta sentencia y el
> > resultado que me trae es erróneo.
> >
> > Es decir tengo una tabla con dos campos y creo una vista para tener un
> campo
> > que contenga como resultado la formula que se nuestra en el código
> >
> > Donde Suma2 = Suma entre la raíz cuadrada de suma al cuadrado + suma1


al
> > cuadrado. Ahora el resultado que devuelve contiene muchos dígitos
después
> > del punto y me interesa por lo menos tres o dos.
> >
> > Cuando resto este resultado de 0.9 me da un valor erróneo
> >
> >
> >
> >
> > Create table Test1
> > (Suma decimal,suma1 numeric)
> > GO
> > Insert into Test1
> > (Suma,Suma1)
> > Values (35746,21471)
> > GO
> > Create View Pepe
> > AS
> > select Suma,Suma1, Suma / sqrt(SQUARE(Suma) + SQUARE(Suma1))As Suma2
> > from Test1
> > GO
> > Select CASE WHEN Suma2 < 0.9 THEN 0.9 - Suma2
> > ELSE Suma2 END AS Suma2
> > FROM Pepe
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Carlos Sacristan
22/04/2004 - 15:11 | Informe spam
Usa entonces la función ROUND. Echa un vistazo en los BOL la información
que viene acerca de ella



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Julio" escribió en el mensaje
news:
Otra razon por lo cual lo necesito en decinal reducido es porque tengo que
presentar este numero como estadisticas





"Julio" wrote in message
news:
> Hola José, si veo que el resultado es el mismo, ahora bien lo que busco


es
> no tener tanto numero decimales. Lo que sucede es que ese resultado que


me
> da Suma2 menos 0.9 se multiplicara por una cantidad específica que el
> resultado será dinero.
>
> El resultado de la formula se puede limitar a que me devuelva la


cantidad
de
> decimales que yo quisiera?
>
>
>
> Es decir:
>
> select Suma,Suma1, Suma / sqrt(SQUARE(Suma) + SQUARE(Suma1))As Suma2
> from Test1 = 0.85724525197764734 (Suma2)
>
>
>
> Se puede tener algo como: 0.857
>
>
>
> Luego 0.9-0.857 = 0.043
>
>
>
> Luego multiplicare este numero 0.043 * 29810.515 = 1281.852145
>
>
>
> A diferencia de esto 0.9 - 0.85724525197764734 = 4.2754748022352684E-2
>
>
>
> Luego 4.2754748022352684E-2 * 29810.515 = 1274.5410572415651
>
> En realidad quiero trabajar con menos decimales después del punto.
>
>
>
> Ahora bien si en un futuro puede traer problema la transformación


prefiero
> trabajar con ellos con esta cifras enormes
>
>
>
>
>
>
>
>
>
> Create view pepe1
> AS
> select Suma,Suma1, Suma / sqrt(SQUARE(Suma) + SQUARE(Suma1))As Suma2
> from Test1 = 0.85724525197764734 (Suma2)
>
> Ahora el resultado de esta operacion:
> Select CASE WHEN Suma2 < 0.9 THEN 0.9 - Suma2
> ELSE Suma2 END AS Suma2
> FROM Pepe1 = 4.2754748022352684E-2
>
> Donde deveria de ser 0.9 - 0.85724525197764734 = 0.04275474802235266
>
>
>
>
>
>
>
>
>
> "Jose Mariano Alvarez (MUG)" <jose.alvarez * *Arroba* * mug.org.ar>


wrote
in
> message news:
> > Por que dices que esta mal el resultado?
> > Para mi esta bien.
> >
> >
> > Te sugiero que uses numeros de punto flotante para este tipo de
> operaciones
> > Los tipopos de dato son Float y Real.
> >
> >
> >
> >
> > Jose Mariano Alvarez
> > jose (.) alvarez * *Arroba* * mug (.) org (.) ar
> > Comunidad de base de datos
> > Grupo de Usuarios Microsoft
> > www.mug.org.ar
> >
> >
> > .
> > "Julio" wrote in message
> > news:OsKwHQ$
> > > Hola Grupo
> > >
> > > Necesito tener por los menos tres o dos dígitos en esta sentencia y


el
> > > resultado que me trae es erróneo.
> > >
> > > Es decir tengo una tabla con dos campos y creo una vista para tener


un
> > campo
> > > que contenga como resultado la formula que se nuestra en el código
> > >
> > > Donde Suma2 = Suma entre la raíz cuadrada de suma al cuadrado +


suma1
al
> > > cuadrado. Ahora el resultado que devuelve contiene muchos dígitos
> después
> > > del punto y me interesa por lo menos tres o dos.
> > >
> > > Cuando resto este resultado de 0.9 me da un valor erróneo
> > >
> > >
> > >
> > >
> > > Create table Test1
> > > (Suma decimal,suma1 numeric)
> > > GO
> > > Insert into Test1
> > > (Suma,Suma1)
> > > Values (35746,21471)
> > > GO
> > > Create View Pepe
> > > AS
> > > select Suma,Suma1, Suma / sqrt(SQUARE(Suma) + SQUARE(Suma1))As Suma2
> > > from Test1
> > > GO
> > > Select CASE WHEN Suma2 < 0.9 THEN 0.9 - Suma2
> > > ELSE Suma2 END AS Suma2
> > > FROM Pepe
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#5 Jose Mariano Alvarez \(MUG\)
22/04/2004 - 22:25 | Informe spam
Si pero hazlo al final de todo luego de hacer todas las cuentas con todos
los decimales.
Sino los errores que vas a arrastrar son mas grandes.

Jose Mariano Alvarez
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar



"Carlos Sacristan" <csacristan ARROBA mvps.org> wrote in message
news:
Usa entonces la función ROUND. Echa un vistazo en los BOL la


información
que viene acerca de ella



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Julio" escribió en el mensaje
news:
> Otra razon por lo cual lo necesito en decinal reducido es porque tengo


que
> presentar este numero como estadisticas
>
>
>
>
>
> "Julio" wrote in message
> news:
> > Hola José, si veo que el resultado es el mismo, ahora bien lo que


busco
es
> > no tener tanto numero decimales. Lo que sucede es que ese resultado


que
me
> > da Suma2 menos 0.9 se multiplicara por una cantidad específica que el
> > resultado será dinero.
> >
> > El resultado de la formula se puede limitar a que me devuelva la
cantidad
> de
> > decimales que yo quisiera?
> >
> >
> >
> > Es decir:
> >
> > select Suma,Suma1, Suma / sqrt(SQUARE(Suma) + SQUARE(Suma1))As Suma2
> > from Test1 = 0.85724525197764734 (Suma2)
> >
> >
> >
> > Se puede tener algo como: 0.857
> >
> >
> >
> > Luego 0.9-0.857 = 0.043
> >
> >
> >
> > Luego multiplicare este numero 0.043 * 29810.515 = 1281.852145
> >
> >
> >
> > A diferencia de esto 0.9 - 0.85724525197764734 4.2754748022352684E-2
> >
> >
> >
> > Luego 4.2754748022352684E-2 * 29810.515 = 1274.5410572415651
> >
> > En realidad quiero trabajar con menos decimales después del punto.
> >
> >
> >
> > Ahora bien si en un futuro puede traer problema la transformación
prefiero
> > trabajar con ellos con esta cifras enormes
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Create view pepe1
> > AS
> > select Suma,Suma1, Suma / sqrt(SQUARE(Suma) + SQUARE(Suma1))As Suma2
> > from Test1 = 0.85724525197764734 (Suma2)
> >
> > Ahora el resultado de esta operacion:
> > Select CASE WHEN Suma2 < 0.9 THEN 0.9 - Suma2
> > ELSE Suma2 END AS Suma2
> > FROM Pepe1 = 4.2754748022352684E-2
> >
> > Donde deveria de ser 0.9 - 0.85724525197764734 = 0.04275474802235266
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > "Jose Mariano Alvarez (MUG)" <jose.alvarez * *Arroba* * mug.org.ar>
wrote
> in
> > message news:
> > > Por que dices que esta mal el resultado?
> > > Para mi esta bien.
> > >
> > >
> > > Te sugiero que uses numeros de punto flotante para este tipo de
> > operaciones
> > > Los tipopos de dato son Float y Real.
> > >
> > >
> > >
> > >
> > > Jose Mariano Alvarez
> > > jose (.) alvarez * *Arroba* * mug (.) org (.) ar
> > > Comunidad de base de datos
> > > Grupo de Usuarios Microsoft
> > > www.mug.org.ar
> > >
> > >
> > > .
> > > "Julio" wrote in message
> > > news:OsKwHQ$
> > > > Hola Grupo
> > > >
> > > > Necesito tener por los menos tres o dos dígitos en esta sentencia


y
el
> > > > resultado que me trae es erróneo.
> > > >
> > > > Es decir tengo una tabla con dos campos y creo una vista para


tener
un
> > > campo
> > > > que contenga como resultado la formula que se nuestra en el código
> > > >
> > > > Donde Suma2 = Suma entre la raíz cuadrada de suma al cuadrado +
suma1
> al
> > > > cuadrado. Ahora el resultado que devuelve contiene muchos dígitos
> > después
> > > > del punto y me interesa por lo menos tres o dos.
> > > >
> > > > Cuando resto este resultado de 0.9 me da un valor erróneo
> > > >
> > > >
> > > >
> > > >
> > > > Create table Test1
> > > > (Suma decimal,suma1 numeric)
> > > > GO
> > > > Insert into Test1
> > > > (Suma,Suma1)
> > > > Values (35746,21471)
> > > > GO
> > > > Create View Pepe
> > > > AS
> > > > select Suma,Suma1, Suma / sqrt(SQUARE(Suma) + SQUARE(Suma1))As


Suma2
> > > > from Test1
> > > > GO
> > > > Select CASE WHEN Suma2 < 0.9 THEN 0.9 - Suma2
> > > > ELSE Suma2 END AS Suma2
> > > > FROM Pepe
> > > >
> > > >
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida