黑马程序员技术交流社区

标题: 为什么总是说我的参数超过long的范围啊 [打印本页]

作者: 明天你好    时间: 2014-3-15 19:10
标题: 为什么总是说我的参数超过long的范围啊
public class Test11 {

        public static String[] cn={"仟","佰","拾","亿","仟","佰","拾","万","仟","佰","拾","圆整"};
        public static String[] number={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
        public static String getString(long n)
        {
        String money=""+n;
        if(money.length()>cn.length)
        return "钱太多";
        String str="";
        for(int i=0;i<money.length();i++)
        str+=number[Integer.parseInt(""+money.charAt(i))]+cn[cn.length-money.length()+i];
        return str;
        }
        public static void main(String[] args) {
        System.out.print(getString(101000001010));//这里传的数应该在long类型的范围内啊,但总是报错说超过了范围
        }
        }


作者: 张贺    时间: 2014-3-15 19:20
在数字后面加个l(小写的L)或者L就可以了,当使用一个超出int类型范围的整数时,系统不会自动把他当作long来处理,需要在后面加上l或L后缀!
作者: 明天你好    时间: 2014-3-15 19:59
张贺 发表于 2014-3-15 19:20
在数字后面加个l(小写的L)或者L就可以了,当使用一个超出int类型范围的整数时,系统不会自动把他当作long ...

如果不在数字后面加L,那么可以通过其他方式解决吗
作者: 张贺    时间: 2014-3-15 20:05
明天你好 发表于 2014-3-15 19:59
如果不在数字后面加L,那么可以通过其他方式解决吗

如果是直接使用数字,我不知道,别的话,还可以使用字符串,然后进行类型转换!
作者: 乔钰博    时间: 2014-3-15 22:17
直接定义一个数字的时候会默认当做int型来处理,想转成long型就在数字后面加个L吧,这种方式没什么不好,传智播客老师都这样写




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2