我将一个项目从XE升级到XE2,我注意到DateToStr
的工作方式与以前不同。
如果我试图将一个空日期转换为字符串,它会出现“无效浮点操作”。而在XE中不存在这种情况。
为什么会有这种差异?是否存在其他函数的类似行为?(我的意思是在类似情况下转换空值会改变行为的一些函数)
我将一个项目从XE升级到XE2,我注意到DateToStr
的工作方式与以前不同。
如果我试图将一个空日期转换为字符串,它会出现“无效浮点操作”。而在XE中不存在这种情况。
为什么会有这种差异?是否存在其他函数的类似行为?(我的意思是在类似情况下转换空值会改变行为的一些函数)
经过调查,我意识到Embarcadero在XE2中做出的这个设计选择将影响很多旧代码。在可能的情况下,我替换了DateTimeToStr
或者在尝试转换为字符串之前添加了对NULL
日期的检查。
此外,DevExpress的一些组件也因此问题而出现了一些问题。
0.0
的TDateTime
吗? - David Heffernan0.0
的值不会引发 FP 错误。 - David Heffernan