码迷,mamicode.com
首页 > 其他好文 > 详细

又一次遇到+=操作的隐藏转型问题。

时间:2014-08-26 13:49:06      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:des   http   java   io   for   问题   div   代码   sp   

隐藏转型的问题,对于简单的例子,大家都已经知道:

short i=1,j=1;

short k = i+j ;//编译错误,需要手工转型 。

但是 i++是可以的。这里就涉及隐藏转型的问题。


今天优化代码,原来的double用float,有一处没有修改,竟然能正确编译:

        float sum = 0;
        float[] location = point.getLocation();
        if ( location == null || mDescriptor == null ) return Float.MAX_VALUE;
        
        for ( int i = 0; i < mDescriptor.length; i++ ){
            double diff = mDescriptor[i] - location[i];
            sum += diff*diff;
        }
        return sum;

double的diff的积可以直接给float的sum进行+=操作。

询问了好久,终于查到了http://stackoverflow.com/questions/8710619/java-operator。


当然这段代码的diff最终是要修改为float的,只是在修改的中间过程发现这个现象。

又一次遇到+=操作的隐藏转型问题。

标签:des   http   java   io   for   问题   div   代码   sp   

原文地址:http://blog.csdn.net/axman/article/details/38845323

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!