| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
Reworld,下班在家制作游戏,1500万奖金等你拿以码会友 以友辅仁
共有 133 人关注过本帖
标题:关于高精度小数处理的问题
只看楼主 加入收藏
faqueerliu
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-8-9
  问题点数:0  回复次数:0   
关于高精度小数处理的问题
大家好,我有个问题想请教一下:
有一个时间数据(存于MySQL,类型为DateTime[3],即带三位毫秒的时间数据),现在要读取出来处理,使用ADO连接,如果采用field.asDatetime函数,则只能读取出包含年-月-日 小时-分-秒的数据,因此改用asSQLTimeStamp,这个返回结构中包含 年,月,日,时,分,秒,fractions(理解为毫秒或者更精细的时间数据),于是我需要将带毫秒的时间数据转换为一个浮点数进行下一步处理,问题就出在这里:
例如:返回一个SQLTimeStamp数据(2018/07/30 8:03:13.900),这个日期对应的浮点数是43311.3355775463,我想把毫秒数加在这个浮点数之后,即43311.3355775463900,因此操作如下:
在得到SQLTimeStamp之后,
1.获取正常日期数据(不包括毫秒数据,仅包含 年,月,日,时,分,秒)
2.获取该日期数据对应的浮点数
3.将该浮点数转化为文本,将毫秒数加到字符串末尾
4.将包含毫秒数据的字符串转化为浮点数,问题来了:
我需要转化的字符串为“43311.3355775463900”,但是通过strtofloat转换后始终只能得到6位小数(转换后得到43311.335578),后面被四舍五入,由于得到的数据精度达不到要求,无法在chart中得到正确的图形(X轴数据不正确),也使用过formatfloat的方法,得到的结果(结构体内的一个数,类型为extended,double也试过,类似的问题)始终无法满足精度要求,请问高精度的小数在Delphi中如何获取和保存?
谢谢!
搜索更多相关主题的帖子: 小数 处理 数据 毫秒 浮点数 
2019-08-09 23:47
快速回复:关于高精度小数处理的问题
数据加载中...
 
   





关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027034 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved