如题

解决方案 »

  1.   

    精度和取值范围不一样,int只是整数,money有小数点,建议用decimal,money会在数据库中把小数点前的0省去,读取数据时格式不好控制.
      

  2.   

    我问错了  我问的是float和money的区别!
      

  3.   

    Q: 我问的是float和money的区别!
    ————————————————————————————————————————
    A: 当使用float的时候,你将1块钱乘以5,然后再除以5,这样运算几十次,其结果并不等于1,而是有一个小数点之后很多位的误差。同样先除以5再乘以,运算很多次,跟先乘后除得到的两个浮点数结果并不完全一样,所以用相等判断是完全错误的。当具有极小误差的数字作为分母的时候会得到巨大的误差的结果。而使用money,由于其算术运算中每一步仅保存4位小数点,随时将极小数舍去了。因此,这才叫做Money,它每一步都舍去很小的零头。(以前有一个美国程序员将银行的计算机的运算零头转存到自己的账户里,这也是懂得money的社会意义表现,不过是负面的)
      

  4.   

    Q: 我问的是float和money的区别!
    ————————————————————————————————————————
    A: 当使用float的时候,你将1块钱乘以5,然后再除以5,这样运算几十次,其结果并不等于1,而是有一个小数点之后很多位的误差。同样先除以5再乘以,运算很多次,跟先乘后除得到的两个浮点数结果并不完全一样,所以用相等判断是完全错误的。当具有极小误差的数字作为分母的时候会得到巨大的误差的结果。而使用money,由于其算术运算中每一步仅保存4位小数点,随时将极小数舍去了。因此,这才叫做Money,它每一步都舍去很小的零头。(以前有一个美国程序员将银行的计算机的运算零头转存到自己的账户里,这也是懂得money的社会意义表现,不过是负面的)
    学习了!!!!!!!!