Double.valueOf(),Float.valueOf() bug

      现在我开始更新这个没有多少人看的博客。算是有一次开始吧。

      这篇的内容应该不太专业,尽情吐槽,是我的博客能多点人气儿。

正题:

      正在做一个彩票的app。其中会有金钱的输入框。而输入的内容限制为整数或小数,小数部分最多保留两位。而金额在提交到服务器的时候要求的是以输入金钱一百倍的格式提交的。举例:7元---->700  7.1元---->710   7.11元----->711

      首先输入框的内容为整数或小数,一般来说为了方便会统一用Double.valueOf(),Float.valueOf()这两个函数处理,然后*100或/0.01。前面的函数部分没发现问题,但是函数处理后的值*100或/100有时候会出先偏差。原因不太了解。昨天测试用一个很特别的数字检验出了这个bug。73.6。然后我用了其他的数值实验了一下,发现这还不是数值界限的问题。最后很无奈。自己写了一个把输入框内容自动转换为100倍数字的函数。

      这里主要分享了这个奇葩的bug,下面贴出自己写的很简单的函数。

     

public int switchInputWithdraw(String input){//转换提现金额使其符合协议格式33.3元-->3330;33.45-->3345;33-->3300
    int outPut=0;
    if(input.contains(".")){
        int p=input.indexOf(".");
        String bPoint=input.substring(p+1);
        if(bPoint.length()==1){
            input=input.replace(".","");
            input=input+"0";
        }
        else{
            input=input.replace(".","");
        }
    }
    else{
        input=input+"00";
    }
    outPut=Integer.parseInt(input);
    return outPut;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值