小数点后保留几位?(50分)

  • 主题发起人 主题发起人 xzhxu2006
  • 开始时间 开始时间
X

xzhxu2006

Unregistered / Unconfirmed
GUEST, unregistred user!
现在我有一个Edit1空间,欲让Edit1.Text中输入钱的多少,请教大虾,代码如何实现我输入是小数点后最多只能保留两位?

另外,我将Edit1.BiDiMode := bdRightToLeft,在输入小数点时,小数点跑到最前面了,然后在输入数字,又正常了?例如:现在是"100",再输入小数点时,就变成".100"了,再输入任意数字,就变成"100.43"了,请问大虾这其中过度的一步,如何才能实现为"100."呢?

请大虾帮忙!
 
为什么不用MaskEdit呢 ?
 
可以理解你的心情 用转换INT定义 copy找小数点位置 再允许后面只写两位字符(必须是数字的)就可以了
 
用format試過碼?
 
现在我有一个Edit1空间,欲让Edit1.Text中输入钱的多少,请教大虾,代码如何实现我输入是小数点后最多只能保留两位?
 
最好是使用maskedit.你也可以使用专门的货币输入控件,叫SNC,很好用,而且是带源码的。
 
procedure TForm1.Edit1Exit(Sender: TObject);
begin
edit1.Text:=formatfloat('0.00',strtofloat(edit1.Text));
end;
 
edit1.Text:=formatfloat('0.00',strtofloat(edit1.Text));
这个好象不行!
 
MaskEdit1.BiDiMode := bdRightToLeft,还是会出现老毛病
在输入小数点时,小数点跑到最前面了,然后在输入数字,又正常了
 
在控件的exit事件中加入
edMoney.Text:= FormatFloat('#,##0.00', StrToFloat(edMoney.Text));

如果要控制在控件的靠右端显示数字的话,你可以根据你控件的MaxLength,然后再利用在数字前端补空格的方法显示。
 
Edit1.MaxLength 已经给他付值了
现在问题是 在输入小数点时,小数点跑到最前面了,然后在输入数字,又正常了
这个问题该如何解决???
 
edMoney.Text:= FormatFloat('#,##0.00', StrToFloat(edMoney.Text));
这样好象还是有问题
Delphi中有没有直接输入Money的控件,可以自动保留小数点后面两位?
 
多人接受答案了。
 

Similar threads

回复
0
查看
978
不得闲
S
回复
0
查看
816
SUNSTONE的Delphi笔记
S
S
回复
0
查看
737
SUNSTONE的Delphi笔记
S
后退
顶部