本帖最后由 liboren 于 2010-07-18 23:58:39 编辑

解决方案 »

  1.   

    涉及金额的话建议使用 long 单位根据精确度到分或者厘。long 运算不会产生误差,而 double 会产生计算误差,用于金额计算时不适合。比如:1.53 元存到库里为 153 或者 1530 就可以了。数据库拥有 decimal 类型,可以保证小数值的计算精度,但要在 Java 中的话除了 BigDecimal 没有类似于保证小数精度的 decimal 类型。但是 BigDecimal 不管在计算速度和效率上都没办法跟基本类型数据类型相比,所以也就建议扩大金额单位存为整数类型 long。如果金额的有效数值在 16 位之内的话,并且对于金额运算也没有很高的要求,可以使用 double,但不能使用 float,因为 float 的有效精度只有 6 位,远远不够用于金额计算。
      

  2.   

    1:数据字典的值使用 int,比如:0-成功;1-失败 之类的状态值,这类值一般的数据是有效的。
    2:数据表主键,如果是配置信息之类的可以使用 int,也就是必须在 NUMBER(9) 或以下,如果是持续大量增加的数据表主键,建议使用 long,数据表 ID 字段为 NUMBER(10)~NUMBER(18) 之间。如果每日的增幅不大,也可以使用 int。不过于大多数数据量来数,int 可供每日 100 万数据使用 5 年。