OVH Cloud OVH Cloud

Pb type money et decimal

2 réponses
Avatar
Elo
Bonjour,

J'ai un formulaire d'ajout qui me permet de r=E9cup=E9rer un=20
prix.
Le prix ets stock=E9 dans l'attribut prix de mon objet qui=20
a pour type decimal. Lorsque j'ins=E8re les valeurs de mon=20
objet dans la base, le champs prix correspondant est de=20
type money.
Le probl=E8me, c'est que je propose un formulaire de=20
modification avec une tesxtbox permettant de modifier le=20
prix, et cette textbox est initialis=E9e avec la valeur de=20
de la base, mais cette valeur a la forme xxx.xxxx .
Pourtant dans ma base, la valeur stock=E9e a bien la forme=20
xxx.xx . Est-ce que qualqu'un voit o=F9 est le probl=E8me et=20
comment y rem=E9dier ?=20

Merci d'avance.

Elo

2 réponses

Avatar
Dominic Pelletier
Bonjour Elo,

En réalité dans ta bd tout est stocké avec tout la précision mais c'est
le formatage de money qui te donne un chiffre avec deux decimal.... Alors tu
devras formater ta valleur avant de la mettre dans le textbox...

Ex :

textboxPatate.Text = dMyDecimal.ToString("9.99")

le 9 oblige un chivre avant le point .
le .99 donne une precision de deux chiffre aprs la vigule et les 9
oblige un chiffre alors si pas de chiffre il va mettre 0

ex:

145.5847 = 145.58
27.4 = 27.40
.6 = 0.60

Dominic
"Elo" wrote in message
news:1f54f01c45763$6abe4610$
Bonjour,

J'ai un formulaire d'ajout qui me permet de récupérer un
prix.
Le prix ets stocké dans l'attribut prix de mon objet qui
a pour type decimal. Lorsque j'insère les valeurs de mon
objet dans la base, le champs prix correspondant est de
type money.
Le problème, c'est que je propose un formulaire de
modification avec une tesxtbox permettant de modifier le
prix, et cette textbox est initialisée avec la valeur de
de la base, mais cette valeur a la forme xxx.xxxx .
Pourtant dans ma base, la valeur stockée a bien la forme
xxx.xx . Est-ce que qualqu'un voit où est le problème et
comment y remédier ?

Merci d'avance.

Elo
Avatar
Elo
En fait, j'ai essayé de mettre :
montetxtbox.text = monprix.toString("9.99");
Mais ça ne marche pas, il me remplit la textbox avec le
prix 999 euros...
Du coup je vais regarder s'il y a un moyen de faire un
convert au niveau de la proc stockée, d'après ce que j'ai
vu dans la doc de sql server, il y aurait peut-être un
moyen de faire un convert en smallmoney, et en spécifiant
le format. Enfin, je sais pas trop comment faire, alors
je vais essayer de retrouver l'article.
Merci pour ton aide en tout cas.

Elo

-----Message d'origine-----
Bonjour Elo,

En réalité dans ta bd tout est stocké avec tout la


précision mais c'est
le formatage de money qui te donne un chiffre avec deux


decimal.... Alors tu
devras formater ta valleur avant de la mettre dans le


textbox...

Ex :

textboxPatate.Text = dMyDecimal.ToString("9.99")

le 9 oblige un chivre avant le point .
le .99 donne une precision de deux chiffre aprs


la vigule et les 9
oblige un chiffre alors si pas de chiffre il va mettre 0

ex:

145.5847 = 145.58
27.4 = 27.40
.6 = 0.60

Dominic
"Elo" wrote in


message
news:1f54f01c45763$6abe4610$
Bonjour,

J'ai un formulaire d'ajout qui me permet de récupérer un
prix.
Le prix ets stocké dans l'attribut prix de mon objet qui
a pour type decimal. Lorsque j'insère les valeurs de mon
objet dans la base, le champs prix correspondant est de
type money.
Le problème, c'est que je propose un formulaire de
modification avec une tesxtbox permettant de modifier le
prix, et cette textbox est initialisée avec la valeur de
de la base, mais cette valeur a la forme xxx.xxxx .
Pourtant dans ma base, la valeur stockée a bien la forme
xxx.xx . Est-ce que qualqu'un voit où est le problème et
comment y remédier ?

Merci d'avance.

Elo


.