- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在这里做错了什么?我只是想将格式化字符串转换为 double 型,并使用 TFormatSettings 作为参数传递给 StrToFloat。我收到以下异常:
'3,332.1' is not a valid floating point value.
千位分隔符和小数分隔符是 TFormatSettings 中的预期值(“,”和“.”)。
procedure TForm2.Button1Click(Sender: TObject);
var
FS: TFormatSettings;
S: String;
V: double;
begin
FS:= TFormatSettings.Create;
codesite.Send('ThousandSeparator', FS.ThousandSeparator); //correct ','
codesite.Send('DecimalSeparator', FS.DecimalSeparator); //correct '.'
S := '3,332.1';
try
V := StrToFloat(S, FS);
except on E: Exception do
ShowMessage(e.Message);
end;
CodeSite.Send('S', S);
CodeSite.Send('V', V);
end;
最佳答案
此行为是按照设计的。来自 documentation ,我强调的是:
Use StrToFloat to convert a string, S, to a floating-point value. S must consist of an optional sign (+ or -), a string of digits with an optional decimal point, and an optional mantissa. The mantissa consists of 'E' or 'e' followed by an optional sign (+ or -) and a whole number. Leading and trailing blanks are ignored.
The DecimalSeparator global variable or its TFormatSettings equivalent defines the character that is used as a decimal point. Thousand separators and currency symbols are not allowed in the string. If S does not contain a valid value, StrToFloat raises an EConvertError exception.
因此,将包含千位分隔符的字符串传递给此函数是错误的。
关于delphi xe5 StrToFloat 失败将ThousandSeparator更改为 ',',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25828219/
我正在尝试覆盖 Ext.util.Format.decimalSeparator 和 HundredSeparator。因此,在我的应用程序中,当我将语言更改为西类牙语并尝试使用此函数 Ext.uti
我是一名优秀的程序员,十分优秀!