delphi xe5 StrToFloat故障将ThousandSeparator更改为’,’
发布时间:2020-12-15 04:29:19 所属栏目:大数据 来源:网络整理
导读:我在这做错了什么?我只是想将格式化的字符串转换为double,并使用传入的TFormatSettings作为StrToFloat的参数.我得到以下异常: '3,332.1' is not a valid floating point value. 千位分隔符和小数分隔符是TFormatSettings中的预期值(‘,’和’.’). procedu
我在这做错了什么?我只是想将格式化的字符串转换为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; 解决方法
什么,你在这里做的是正确的,但你在什么它似乎是一个错误无意中发现(如果不是一个错误至少不是很一致的行为)的TextToFloat的(它似乎忽略ThousandSeparator)德尔福SysUtils单元中的内部函数(取看看
Q92265跟随决议)…
作为一种解决方法,您可以尝试以这种方式删除组分隔符: StringReplace('3,332.1',','',[rfReplaceAll]) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |