Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Limiter les déci

3 réponses
Avatar
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

3 réponses

Avatar
gillardg
regarde ceci ça pourrait t'aider
http://www.vbfrance.com/codes/VB-NET-NUMERIXBOX-TEXTBOX-NUMERIQUE-GERE-DECIMALES-ARRONDIS_43936.aspx

"Emilie" a écrit dans le message de groupe de
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



Avatar
Jérémy Jeanson
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
Avatar
Jacquouille14
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<>46 and e.KeyValue<>8 and e.KeyValue<>39 and e.KeyValue<>37
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,".")<>0) or ((e.KeyValue<96 or e.KeyValue>105) and
e.KeyValue<>110)
e.SuppressKeyPress = -1
End If
end if
End Sub

Bonne programmation.
--
Jacques dit Jacquouille