Decimali da un decimal

mercoledì 17 settembre 2008 - 17.49

memmo77 Profilo | Expert

Ciao. Come recupero i decimali da una variabile di tipo decimal(18,2)?
Devo in pratica leggere i due decimali.
Stavo pensando a convertirla e splittarla. Non c'è un metodo + pratico?
Grazie

alx_81 Profilo | Guru

>Ciao.
Ciao!

>Come recupero i decimali da una variabile di tipo decimal(18,2)?
>Devo in pratica leggere i due decimali.
>Stavo pensando a convertirla e splittarla. Non c'è un metodo
>+ pratico?
Ma dove li devi visualizzare?

>Grazie
di nulla!

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

memmo77 Profilo | Expert

mi servono per un altra variabile

alx_81 Profilo | Guru

>mi servono per un altra variabile
Ma scusa, se è tipizzata.. l'assegni normalmente..
Non capisco..

-- EDIT ---
ah.. ho capito..
no no allora io fossi in te sottrarrei la parte intera..

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

memmo77 Profilo | Expert

del numero 18,25 devo trovare
@mio_intero = 18
@mio_decimale = 25

alx_81 Profilo | Guru

che ne dici di così?
DECLARE @d decimal(18,2) SET @d = 18.25 SELECT CAST((@d - ROUND(@d,0)) * 100 AS int)
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

memmo77 Profilo | Expert

Ok perfetto. Io avevo ottenuto lo stesso facendo così:

declare @f as DECIMAL(18,2)
declare @a as DECIMAL(18,2)
declare @b as DECIMAL(18,2)

set @f = 12.51

select FLOOR(@f)

set @a = convert(decimal(18,2),FLOOR(@f))

set @b = @f - @a
select FLOOR(@b * 100)


Come ti sa? Ma preferisco la tua, + pulita . Grazie



ps. mi provi col numero 18.99?
quando lo casto ritorna -1

alx_81 Profilo | Guru

>Come ti sa? Ma preferisco la tua, + pulita . Grazie
più macchinosa..

sì, ci vuole la floor..
DECLARE @d decimal(18,2) SET @d = 18.99 SELECT CAST((@d - FLOOR(@d)) * 100 AS int)
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

memmo77 Profilo | Expert

Ok ora va benissimo . Grazie ciao
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5