【深度历险】:VC 关于定点数 VT_DECIMAL 转换为字符串CString的函数探秘!
来源:互联网 发布:yum search命令 编辑:程序博客网 时间:2024/05/18 23:13
VC中没有现成的关于定点数 VT_DECIMAL 转换为字符串CString的函数可用,但是在进行数据库访问时,这种定点精度的小数却是一种应用极其广泛的数据格式,因为它可以固定精度,固定数据位数,可以很准确的表达小数类型。
在需要进行VT_DECIMAL转换为字符串类型数据时,大多数人只是简单的进行如下格式的转换:
在以上列出的3种方式中,
第一种方式,结果带E符号,相信不是绝大多数应用所需要的, 例子: 1.2e-010
第二种方式,精度丢失,我测试还发现有时数据很不准确。
第三种方式,你怎么就知道精度一定是8呢?将定点数的用途完全乱用。
实际上, VT_DECIMAL是一种非常理想化的定点数表达方式,其原始定义如下:
基本数据用到的是
1) Lo64,这个是存放实际数据的,64bit
2) sign: 符号位,如果小于128,则是正数;sign>=128 则值value <0
3) signscale, scale 这是规定了小数点的精度
4) wReversed:这个是数据整体的长度,举例
VT_DECIMAL(16, 3): 则规定了整个数据的长度是16(不包括小数点、符号位),其中3位小数
所以:3.1415926 表示成 (16,3) 精度的表达形式是 3.141, Lo64=3141 sign =3
好了,至此VT_DECIMAL的全部知识点讲解完毕,下面是实现其转换为CString 的函数,用到了一个很关键的函数:_ui64toa这个是专门用作64位整数转换为字符串的函数。
好了,完整的函数已经写完,是不是要测试一下呢?等等,_ui64toa这个函数在哪里定义的呢?呵呵,留给各位去查吧,自己还是要多做做练习啊。
- 【深度历险】:VC 关于定点数 VT_DECIMAL 转换为字符串CString的函数探秘!
- VC 关于定点数 VT_DECIMAL 转换为字符串CString的函数探秘!(转)
- VC VT_DECIMAL 转换为CString
- VC 十六进制字符串转换为CString
- VC编写代码生成GUID并转换为CString字符串
- VC CString 字符串处理函数的应用
- VC CString 字符串处理函数的应用
- VC CString 字符串处理函数的应用
- VC CString 字符串处理函数的应用
- 浮点数转换为字符串函数
- 【VC++类型转换】string转换为CString
- VC 字符串的相互转换 CString 和 unsigned char*
- 定点数转换
- 定点数转换
- VC中,如何将十六进制字符串转换为十进制数?
- vc 浮点数转换为内存十六进制字符串
- vc 浮点数转换为内存十六进制字符串
- vc 浮点数转换为内存十六进制字符串
- 看“职业生涯”小感
- php-fpm特色功能
- 整合struts2,jquery,json。采用jquery ajax,从struts2 action返回json类型数据
- vatana框架设计失败,盘点犯下的错误。
- 中国移动Wlan手机客户端系统用户体验设计
- 【深度历险】:VC 关于定点数 VT_DECIMAL 转换为字符串CString的函数探秘!
- 11线程
- extjs 上传文件 fileUpload
- Android 的Margin和Padding属性以及支持的长度单位
- VC 6 居然无法安装
- 开始做一个技术党~~留下我的学习经验~~
- 将DataTable中筛选中的结果保存到另外的DataTable
- 人妻管理 安装补丁 For win7 X64 运行问题
- C++的虚函数相关知识点(二)