var f:double;
f:=13867.385324; //这是日期只差,以天为单位
showmessage(floattostr(13867.385324*24*3600.0)); //这儿很奇怪,小数点怎么没了?出来的是整数正确的结果应该是:1198142091.9936
可打印出来的是1198142092.
Double精度足够吧,可我即使声明成Extended也还是不行,郁闷中拜请大虾指点!
f:=13867.385324; //这是日期只差,以天为单位
showmessage(floattostr(13867.385324*24*3600.0)); //这儿很奇怪,小数点怎么没了?出来的是整数正确的结果应该是:1198142091.9936
可打印出来的是1198142092.
Double精度足够吧,可我即使声明成Extended也还是不行,郁闷中拜请大虾指点!
解决方案 »
- 有谁安装过JVCL组件,在我的机器上直接运行INSTALL.BAT发生错误。打包的时候说缺少BPL。有哪位能给一个详细的安装说明
- 现在我们公司要做一个发短信的程序,可是我对短信一无所知,不知那位做过此类项目的高手指点一二。
- fastreport中修改字体时的问题
- 使用Delphi写ASP组件,在取数据库记录时出现问题
- group by 产品名称,规格,价格不明白分组有什么作用
- dll里的form的释放问题
- 怎么在ADOTABLE中将指针定位于符合条件的记录
- cxDBGrid控件如何显示表格的字段名称
- 关于数据库应用程序访问数据库时避免出现默认对话框的问题
- stringGrid与数据库之间的应用
- DBGridEh 数据录入问题
- LoadFromFile为什么不能在Delphi7下用呢???
f:=13867.385324; //这是日期只差,以天为单位
showmessage(floattostr(f*24*3600.0)); //计算出秒数。但这儿很奇怪,小数点怎么没了?出来的是整数 正确的结果应该是:1198142091.9936
可打印出来的是1198142092
Double精度足够吧,可我即使声明成Extended也还是不行,郁闷中拜请大虾指点!
感谢jadeluo!!!
比如说2,有的环境有时候是2.0000000000000001,也可能是1.9999999999999999999999999999999999浮点数用的时候如果要求精度,最好把小数位数规定死比如用 FormatFloat('0.00##', AValue)
0和# 同样是占位符,但是是有区别的
3.1110 在'0.####' 会成为 3.111 , 在'0.000'会成为 3.1110
用如下的试试
showmessage(FormatFloat('0.####',13867.385324*24*3600.0)); 比较两个浮点数相等用SameValue()
1198142091.9936
打印出来的也是 1198142091.9936LZ~~~~
待会儿再fuck Myself or gf
先说这破事,我刚才贴的也是不完整的贴,就是图省事,现在贴完整的,我就不信了!var FirstTime,StandardTime:TDatetime; FinalTicks :double;
begin
FirstTime := strtodatetime('2007-12-20 17:14:52');
StandardTime:= strtodatetime('1970-01-01 08:00:00');
FinalTicks := FirstTime-StandardTime;
showmessage(floattostr(FinalTicks)); //正常
showmessage(floattostr(FinalTicks*24*3600.0)); //error,小数没了!
end;这是最后一次,哥们说到做到,你们再能显示小数,老子就Fucking Until Soft...
所以FinalTicks*24*3600 = 1198142092.00000244
所以小数被省略了,而不是象楼主以为的那样被四舍五入了.....
用货币currency类型试试,如果数额不是很大的话。
function FloatToStr(Value: Extended;
const FormatSettings: TFormatSettings): string;可以设定需要的格式
FinalTicks的值不是13867.385324而是13867.3853240741 !!!!
--我怎么算不出这个13867.3853240741 ???!!!
--delphi显示是13867.385324
搂主可以用FormatFloat('0.0000000',FloatValue),'0'的个数随便搂主喜欢拉