zoukankan      html  css  js  c++  java
  • 重新遇到+=操作的隐藏转型问题。

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

    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的,仅仅是在改动的中间过程发现这个现象。

  • 相关阅读:
    过河卒 题解
    You Are the One solution
    D
    Find a way solution
    A
    入门训练 Fibonacci数列
    求平均成绩 题解
    海选女主角 题解
    子集生成和组合问题
    log4j
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/7061146.html
Copyright © 2011-2022 走看看