Limiter les déci

Le
Emilie
Bonjour

Est-il possible de limiter les décimales dans une textbox ?

j'ai un nombre qui est 13,402 et je vodrais afficher 13,40 ?,
dans mon asp:textbox j'ai ajouté FormatString="{0:c}"
et cela ne change rien

Emilie
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
gillardg
Le #18917841
regarde ceci ça pourrait t'aider
http://www.vbfrance.com/codes/VB-NET-NUMERIXBOX-TEXTBOX-NUMERIQUE-GERE-DECIMALES-ARRONDIS_43936.aspx

"Emilie" discussion : 49be7c42$1$2761$
Bonjour

Est-il possible de limiter les décimales dans une textbox ?

j'ai un nombre qui est 13,402 et je vodrais afficher 13,40 ?,
dans mon asp:textbox j'ai ajouté FormatString="{0:c}"
et cela ne change rien

Emilie



Jérémy Jeanson
Le #18919091
Bonjour tout le monde,

Attention, Emilie est sur de l'ASP en ce moment et la classe présentées
sur Code Soruce hérite d'une classe Winform....

Inherits System.Windows.Forms.TextBox

Je pense qu'il serrait préférable de regarder du côté du ToolKit Ajax :
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/Default.aspx

Une foie testé, en général c'est adopté ;)
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Jacquouille14
Le #18919311
Emilie a écrit :
Bonjour

Est-il possible de limiter les décimales dans une textbox ?

j'ai un nombre qui est 13,402 et je vodrais afficher 13,40 ?,
dans mon asp:textbox j'ai ajouté FormatString="{0:c}"
et cela ne change rien

Emilie




Bonjour,
Oui c'est possible. On peut même faire qu'il n'y ait qu'une
seule virgule possible dans le nombre, mettre des 0 (zéros)
avant la virgule si elle est saisie sans rien devant ...
Il vous faut définir vos besoins. Par exemple 13.402 est
arrondi à 13.40 mais 13.406 est-il arrondi à 13.41 ?

Un exemple avec la classe microsoft.visualbasic en utilisant le point,
le texte est formaté en quittant la textbox:
Public Function Deci(x$)'2 decimales
Dim qS$: qs$=x$
If InStr(x$,",") <> 0'remplacer , par .
x$=Microsoft.VisualBasic.Left(x$,InStr(x$,",") - 1) & "."
If Microsoft.VisualBasic.Len(qs$) > InStr(x$,".")'chiffres apres
x$=x$ & Microsoft.VisualBasic.Right(qs$,Len(qs$) - InStr(x$,"."))
end if
End If
If InStr(x$,".")=0 or x$="" then: x$=x$ & ".": End If'manque .
x$=IIf(x$=".","0.00",x$ & "00")
If Microsoft.VisualBasic.Left(x$,1)="." then: x$="0" & x$: End If
deci=Microsoft.VisualBasic.Left(x$,InStr(x$,".") + 2)
End Function
Appel de la fonction: textbox1.textÞci(textbox1.text)

Pour compléter la fonction, celle-ci arrondi à 2 décimales
en analysant au dela des 2 décimales:
Private Function Ajust(XS#) As double 'arrondi des resultats
X$=CStr(XS#): X$ = IIf(InStr(X$, ".") = 0, X$ & ".0000", X$ & "0000")
Ajust = val(deci(X$))
If Val(Mid$(X$, InStr(X$, ".") + 3, 2)) > 49
Ajust = deci(CStr(Ajust) + val("0.01"))'appel de la fonction Deci
End If
End Function

Et pendant la saisie dans la textbox (appelée ici T21) en limitant
à 2 les décimales, en n'autorisant que le point et les chiffres:
Private Sub T21_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles T21.KeyDown
If e.KeyValue If (e.KeyValue0 and instr(T21.text,".")<>0) or e.KeyValue8
e.SuppressKeyPress = -1
elseIf (Len(T21.Text)=InStr(T21.Text,".") + 2 and
InStr(T21.Text,".") e.KeyValue<>110)
e.SuppressKeyPress = -1
End If
end if
End Sub

Bonne programmation.
--
Jacques dit Jacquouille
Publicité
Poster une réponse
Anonyme