文章摘要
文章讨论了在将数据从Access导出到DBF文件时遇到的字段宽度问题。在DBF中,整数和浮点数以字符形式存储,而非字节形式。文章指出,不同数据类型的字段宽度和小数位数在DBF中有所变化: - 短整型(short int)字段宽度为6字符; - 长整型(long)字段宽度为11字符; - 单精度(float)字段宽度为18字符,小数位为7位; - 双精度(double)字段宽度为24字符,小数位为15位。 文章提醒,将Access中的单精度和双精度数据直接转储到DBF中可能会导致精度问题,需要谨慎处理。
short int 短整型 2个字节 值范围 -32768~32767
long 长整型 4个字节 值范围 -2147483648~2147483647 float 单精度 4个字节 值范围 -3.4*10(-38)~3.4*10(38)
double 双精度 8个字节 值范围 -1.7*10(-308)~1.7*10(308)
在Access数据导出到DBF时遇到此问题,DBF中的字段宽度不是指Access中的字段所占字节数,而是字符数。 在DBF中,整数与浮点数都是以字符形式存储的。例如:-3.134存储为“-3.135”,共占了6个字符。
所以
对于Access中的短整型,存储为DBF中的字段宽度为6;
对于Access中的长整型,存储为DBF中的字段宽度为11;
对于Access中的单精度,存储为DBF中的字段宽度为18,小数位为7;
对于Access中的双精度,存储为DBF中的字段宽度为24,小数位为15。
就是说,access中的单精度、双精度数据,转储到DBF中很难保证精度。
您可能感兴趣的文章:Java中的双重检查(Double-Check)详解C#生成设置范围内的Double类型随机数的方法java对double数组排序示例分享java使double保留两位小数的多方法 java保留两位小数基于C++浮点数(float、double)类型数据比较与转换的详解C# double和decimal数据类型以截断的方式保留指定的小数位数C# DoubleClick与MouseDoubleClick区别,双击事件引发顺序C语言double和float 实例分析
© 版权声明
文章版权归作者所有,未经允许请勿转载。


