我的delphi程序,用了个函数strtofloat('363.23'),在我这里一点问题都没有,可是到有些老外机器上为什么就报异常呢?哪位大侠能救我啊,万分感谢
解决方案 »
- 求刷卡机编程解决方案
- 如何调用RES文件里的gif图片!小弟万分感谢,在线等待。。
- 100分求教:不同类型的入库改如何处理成本价
- 一个sql变量问题
- 如何让表单最小化时放至任务栏?
- 说下Format('%')的用法。。
- 有请高手,如何向enabled为false菜单发送一个消息,使它能够执行click事件
- 谁能告诉我怎样用ADO连接INFORMIX数据库,试了三个小时,都失败了,555555 。。。。
- 150求,如何在delphi中控制打印机的走纸?
- SQL Monitor能不能监控TQuery1的SQL语句,能不能监控ADO控件?我总是不能
- 求救 table1:cannot perform this operation on a closed dataset!
- combobox和listbox控件结合起来
我估计是你其它地方引起的,用try+E.Message看一下什么错,如果报内存错,多半是其它地方内存溢出引起的
这条语句是这样的
Memo1.Lines.Add('angle: '+Format('%.6s',[Parent_Node.ChildNodes['Angle'].Text]));
Angle := StrToFloat(Format('%.6s',[Parent_Node.ChildNodes['Angle'].Text]));
结果memo1中的结果是 angle: 346.00
然后就异常了。不知道问题出在哪里
Parent_Node.ChildNodes['Angle'].Text中的值是很长的,346.003738247283523,所以用Format把它格式化一下
上面那句话我已经用了Parent_Node.ChildNodes['Angle'].Text,而且没有问题,打出了结果,所以应该没什么问题。因为是在其他人的机器上出问题,我正在加上try e.message看看是什么问题
看看异常是不是说invalid floating point value什么的,如果是的话应该还是这个值有问题
Angle := StrToFloat(Format('%.6s',[Parent_Node.ChildNodes['Angle'].Text]));
这句话里就是用format把格式转换一下,但是还是出错
angle: 346.00
Exception class name = EConvertError
Exception message = '346.00' is not a valid floating point value
End except:'346.00' is not a valid floating point value
可是346有什么错呢,真的蒙了
问题应该是系统的区域选项中的小数点字符设置引起的
解决方法:
设
DecimalSeparator:='.';
就可以了
(在程序的开头或在你转小数之前)