OVH Cloud OVH Cloud

Eh bien, Totor, et la virgule, elle arrive à pied?

2 réponses
Avatar
pierre
Bonjour à tous,
J'ai une question sur un pb chiffre après la virgule:
j'ai créé une procedure stockée qui met à jour une table.
le 2eme champ (P1) est déclaré ds la table comme float alors que
K1 est un entier.
J'ai fait un truc du style:

ALTER procedure dbo.maTable
as
set nocount on

begin transaction

UPDATE maTable
SET maTable.P1 = maTable.K1/3*(-1)
FROM maTable
commit

Bref, quand j'execute la procedure stokée, j'obtiens la valeur entiere (avec
le signe quand meme ouf!) pour P1. Normalement, je devrai avoir ma virgules
et ses petis copains les chiffres.

Bref, en tant que debutant, je comprends sutout que j'ai loupé qq chose qq
part.
si vous aviez une petite piste, je suis prenneur.
Merci beaucoup et bonne journée.
Pierre

PS: j'ai quand meme fait gaffe que K1 ne soit pas multiple de 3 ;-p

2 réponses

Avatar
Sylvain Lafontaine
C'est comme avec la plupart des autres languages: vous devez transformer en
float la valeur de maTable.K1 avant de réaliser la division en utilisant un
CAST ou un CONVERT; sinon c'est une division entière qui est effectuée.

S. L.

"pierre" wrote in message
news:
Bonjour à tous,
J'ai une question sur un pb chiffre après la virgule:
j'ai créé une procedure stockée qui met à jour une table.
le 2eme champ (P1) est déclaré ds la table comme float alors que
K1 est un entier.
J'ai fait un truc du style:

ALTER procedure dbo.maTable
as
set nocount on

begin transaction

UPDATE maTable
SET maTable.P1 = maTable.K1/3*(-1)
FROM maTable
commit

Bref, quand j'execute la procedure stokée, j'obtiens la valeur entiere
(avec
le signe quand meme ouf!) pour P1. Normalement, je devrai avoir ma
virgules
et ses petis copains les chiffres.

Bref, en tant que debutant, je comprends sutout que j'ai loupé qq chose qq
part.
si vous aviez une petite piste, je suis prenneur.
Merci beaucoup et bonne journée.
Pierre

PS: j'ai quand meme fait gaffe que K1 ne soit pas multiple de 3 ;-p



Avatar
Jean-Nicolas BERGER
UPDATE maTable
SET maTable.P1 = maTable.K1/3.*(-1)
FROM maTable

L'astuce du 3. au lieu du 3 ...
JN.


"pierre" a écrit dans le message de news:

Bonjour à tous,
J'ai une question sur un pb chiffre après la virgule:
j'ai créé une procedure stockée qui met à jour une table.
le 2eme champ (P1) est déclaré ds la table comme float alors que
K1 est un entier.
J'ai fait un truc du style:

ALTER procedure dbo.maTable
as
set nocount on

begin transaction

UPDATE maTable
SET maTable.P1 = maTable.K1/3*(-1)
FROM maTable
commit

Bref, quand j'execute la procedure stokée, j'obtiens la valeur entiere
(avec
le signe quand meme ouf!) pour P1. Normalement, je devrai avoir ma
virgules
et ses petis copains les chiffres.

Bref, en tant que debutant, je comprends sutout que j'ai loupé qq chose qq
part.
si vous aviez une petite piste, je suis prenneur.
Merci beaucoup et bonne journée.
Pierre

PS: j'ai quand meme fait gaffe que K1 ne soit pas multiple de 3 ;-p