java小问题

小弟是新手,到公司做了一点东西,遇到了一个问题,就是在前台获得表单类型转化的问题。前台的数据在后台获得之后是String s = “00000.01”;
将它转化为数字会抛出异常,例如:Long s = Long.parseLong(s);会抛异常。
请问大家这个怎么办,是在前台做控制,还是在后台做控制,如果是在后台做控制,应该怎么办。

问题补充:
这个问题 不一会就解决了   谢谢大家了 
最后用的是BigDecimal

楼主输入的字符串是浮点型的。
而Long是整形的。
所以转换的时候会出现错误。
Float f = Float.parseFloat(s);
用这段代码就可以了。

注意catch

[quote]String s = “00000.01”;
将它转化为数字会抛出异常,例如:Long s = Long.parseLong(s);会抛异常。 [/quote]
long 是长整型的...而你这个是00000.01
就会抛出异常...
用这个:
Float f = Float.parseFloat(s);
要控制的话..在后台
try{
.....
Float f = Float.parseFloat(s);
....

}catch(.....){
......
}

[color=red]String s = “00000.01”;
将它转化为数字会抛出异常,例如:Long s = Long.parseLong(s);会抛异常。[/color]

00000.01 是一个浮点数,转成Long肯定会报错.

Double s = Double.parseDouble(s);

建议用Double比Float 更好

这些东西两边都做验证比较好

问题的所在,楼上的各位都说明白了,就是String s = "00000.01";而它不能直接转换成Long型的,因为long是整型的大哥,所以能转换的就是浮点型,也就是用这个Float f = Float.parseFloat(s);
如果是业务的需要,或者是你学习的时候必须要这样的话,那就想想把浮点数乘以100然后转换成Long型,前台用完了后,再除以100返回后台,不过这样是很麻烦的,一般都是用string型,这样也好处理,只要用的时候格式化一下就可以了。

你只要理解Data Type范围及初始值就不会出错了
char '\u0000' 16 ’\u0000’ ~ ‘\uFFFF’ * 0 ~ 65535

byte 0 8 -27 ~ 27-1 -128 ~ 127
short 0 16 -215 ~ 215-1 -32768 ~ 32767
int 0 32 -231 ~ 231-1

long 0L 64 -263 ~ 263-1

float 0.0F 32

double 0.0D 64

boolean false 1 true / false