int、double类型计算问题

 

使用两个int变量计算的结果默认是int型的值,13883 / 100 = 138

如果要获取double类型的结果,两个计算数必须有一个是double类型,((double)13883) / 100 = 138.83

注:

数学计算中,必然的结果,在计算机中不一定正确;

计算机计算中,首先会考虑两个变量的类型,然后再计算结果,并根据类型要求,保存计算结果

========================================================================================

上述方法是在金额转换中出现的,数据以元为单位的金额转换成以分为单位的金额。

在大多数情况下,转换是正常的;但是,计算机中,double类型的数据本身就是近似保存,还是有可能出现转换前后不一致的情况。

e.g.字符串“36.40”使用上述方法进行转换后的结果是“3639”

因此,为保证转换前后数据上的严格一致,应该把以元为单位的金额按照字符串来处理,即

1、无小数点时,直接添加“00”,得到以分为单位的金额

2、有小数点,且小数点后有两位以上数字时,取前两位数字,和整数部分拼接,得到以分为单位的金额

3、有小数点,且小数点后只有一位数字时,取这一位数字,和整数部分拼接,并在尾部添加“0”,得到以分为单位的金额

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值