在使用AOD读取数据库得时候发现dbgrideh有时无法展示出8位小数,特查了下资料,埋坑如下
将adodataset的EnableBCD属性设为false即可
EnableBCD属性:是否将数字字段作为浮点数或二进制形式的十进制数
场景:dbgrideh等 列需要展示多位小数,设置true展示不了很长的位数
如下:
如果将EnableBCD设为true ,则数值型(adDecimal and adNumeric )的字段从数据库读出来的时候会比较精确,但是如果将EnableBCD为false的话会将number 数值型(adDecimal\adNumeric\adFloat)型的数据都以float型读出来,这样会对数据的精确度有一定的影响,但是可以展示更长的位数。
使用BCD型: 3 * (2/3) = 2
使用Float型:3 * (2/3) = 2.00000000001