我有一个textedit组件和一个按钮组件。如果该值大于0,则按钮组件将textedit组件文本值添加到列表中。在textedit组件上,我可以根据需要添加多个小数位,但我想验证两个小数位。就像我将00.0032
放在textedit组件中一样,验证将其作为0
。是否有一个允许我这样做的功能,或者我必须通过自己的代码执行此操作。
这是我的代码
if (Trim(textEdit.Text) <> '') and (StrToCurr(Trim(textEdit.Text)) <> 0) then
begin
code to add the value
end;
答案 0 :(得分:1)
阅读你的问题我想到了两个可能的解决方案:
你可以转换为浮点乘以100(换算两位小数)并使用地板舍入:
(Floor(StrToFloat(Trim(textEdit.Text)) * 100) <> 0)
这会执行到浮点的转换,这可能很慢。
另一种解决方案可能是使用字符串函数:
(StrToCurr(Copy(textEdit.Text, 1, Pos('.', textEdit.Text) + 2)) <> 0)
这会将输入字符串从小数点分隔符的开头复制到两位数。&#39;。 不要担心你的字符串是否更短(例如&#39; 0.1&#39;)你不会得到错误。
最终快速的解决方案必须进行基准测试。
另外请记住,并非每个地区都有&#39;。&#39;是小数点分隔符。 在欧洲大部分地区,例如小数点分隔符是&#39;,&#39;并且有数千个分隔符。&#39;。 了解有关TFormatSettings的信息。
PS:在使用StrToCurr之前你不需要修剪,因为它在内部修剪。