Bonjour,
Je passe le script suivant:
declare @a int, @b int,@c decimal(3,3)
set @a= 100
set @b= 101
print @a
print @b
set @c= @a/@b
print @c
et j'obtiens le résultat suivant qui ne me convient pas!
1
10
0.000
Pouvez vous m'expliquer pourquoi.
Merci
Bonjour,
Je passe le script suivant:
declare @a int, @b int,@c decimal(3,3)
set @a= 100
set @b= 101
print @a
print @b
set @c= @a/@b
print @c
et j'obtiens le résultat suivant qui ne me convient pas!
1
10
0.000
Pouvez vous m'expliquer pourquoi.
Merci
par ce que tu fais une division d'entier et le résultat et donc du même type ...un entier soit la valeur entière de 0,99 ... soit 0 ....
pour avoir le résultat décimal ...tu caste tes valeurs entières en ... décimal![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 declare @a int, @b int,@c decimal(3,3) set @a= 100 set @b= 101 print @a print @b set @c= convert(decimal(6,3),@a)/convert(decimal(6,3),@b) print @c
Il vaut mieux déclarer tes variables en float pour t'affranchir des cast.
Partager