为什么时间计算有误差,怎么解决啊? ShowMessage(floatToStr(SecondSpan(StrToDateTime('2003-10-11 10:00:00'),StrToDateTime('2003-10-11 9:00:00'))));应该计算显示结果为3600,但程序显示为3599.999974,why???怎么避免啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好好你取整数啊用copy取四位有效你的secondspan是不是自己做的函数而且还是fload类型的? SecondSpan是delphi里的函数,做时间相差运算;其中ShowMessage(floatToStr(SecondSpan(StrToDateTime('2003-10-11',StrToDateTime('2003-10-11')));和ShowMessage(floatToStr(SecondSpan(StrToDateTime('10:00:00'),StrToDateTime('9:00:00'))));的结果是对的,但ShowMessage(floatToStr(SecondSpan(StrToDateTime('2003-10-11 10:00:00'),StrToDateTime('2003-10-11 9:00:00'))));算出来的结果是3599.999974,理应是3600的,why?怎么解决呢? 时间在电脑里面用浮点型描述的,本来就不是很准的。如果要用非常准的方法计算,不如用VARCHAR保存数据,然后专门写几个函数去计算是最好的。 因为 FloatToStr 的参数是 Extended 类型,而 SecondSpan 的返回值是 Double 类型。用 FloatToStrF 转换,可以得到希望的结果。 尽可能的变成整形 ShowMessage(IntToStr(round((StrToDateTime('2003-10-11 10:00:00') - StrToDateTime('2003-10-11 9:00:01'))*24*60*60))); delphi简单的问题? 散1000分,第五个 以二进制方式打开文件,并以十六进制方式显示在richedit中的问题! Datetime怎莫转换成字符型的呢? 左右为难啊!delphi、c++、java做何选择? 用递归的算法解决约瑟夫问题,请进来聊聊.............看者也有分 网络高手~~~(如何实时监测网络连接状态??) mysql7+SQL SERVER 2000+delphi的问题 Delphi中如何设置步长? 50分求书,有意者请进 怎样在word中定位? 请问高手~~数据库问题
你取整数啊
用copy取四位有效
你的secondspan是不是自己做的函数
而且还是fload类型的?
ShowMessage(floatToStr(SecondSpan(StrToDateTime('2003-10-11 10:00:00'),StrToDateTime('2003-10-11 9:00:00'))));算出来的结果是3599.999974,理应是3600的,why?怎么解决呢?
本来就不是很准的。如果要用非常准的方法计算,
不如用VARCHAR保存数据,
然后专门写几个函数去计算是最好的。
用 FloatToStrF 转换,可以得到希望的结果。