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

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

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

时间: 2024-09-21 18:40:35

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

常用div操作以及隐藏显示方法

获取或者设置div的高度以及宽度  方法一:height和width函数,可以用于获取或者设置元素的高度以及宽度(val()获取参数的值,这种方法得到的值是整数)  CSS函数可以用于获取或者设置元素的高度和宽度(获取CSS("width"),设置css("width","200px")或者CSS({"width:200px","height:200px"})),这种方法得到的是已px结尾的字符串 需要注意

Javascript操作Tr隐藏显示变形~

1 document.getElementById('params_box').style.display = 'block'; 修改为 1 document.getElementById('params_box').style.display = 'table-row';

WPF窗口长时间无人操作鼠标自动隐藏

原文:WPF窗口长时间无人操作鼠标自动隐藏 在软件开发中有时会有等待一段时间无人操作后隐藏鼠标,可能原因大致如下: 1.为了安全性,特别是那些需要用到用户名和密码登录服务端的程序,常常考虑长期无人操作,程序自动跳转到用户登录界面: 2.软件为了更好的播放效果,需要隐藏鼠标. 这里写的是第二种情况,wpf做播放时,需要隐藏鼠标. 思路是:假如3s鼠标不动则隐藏,设计了计时器的间隔时间为1s,并添加鼠标没移动的计数器,计数器达到3才执行程序.实现是这样的:每隔1s检测鼠标是否移动,如果不移动则计数器

Effective C++ Item 27 少做转型操作

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie todo Item34 旧式转型 (T) expression 或 T (expression) 新式转型 const_cast<T>(expression) 通常被用来将对象的常量性转除(cast away the constness) dynamic_cast<T>(expression) 执行"安全向下转型",也就是用来决定某对象是否归属继承体系中的

jQuery的常用操作

梳理一下jQuery的常用操作 jQuery隐藏显示对象 id为test的元素的display修改成了"none",即隐藏了id为test的元素:$('#test').css('display','none') 或 $('#test').style.display="none" 我们经常用到的是切换一个元素的隐藏与现实,下面给出代码: var show = $('#test').css('display');//获取id为test的元素的display的值$('#t

C#中List&lt;object&gt;.Clear()方法和实例化new List&lt;object&gt;()操作的结果分析

    本文主要的目的是想简单的探讨一下C#中List针对内存的操作过程,以便以后遇到该种情况可以避免走进误区,内容非常简单,只是在此作为记录.能帮到人最好,帮不到就当给自己提个醒.C#将复杂的指针操作全都隐藏到后台去处理,以至于是我们很到看到C#的本质. C#中list<T> list=new List<T>();中new的过程是建立一块内存空间,是新建一个没有元素的空列表对象. C#中list.Clear()是把new之后的那块内存空间的内容清空,并不是删除这块内存空间,是清除

display,opacity,visibility,position隐藏元素的实质

(1)display:设置属性display:none:,该元素被隐藏,而且该元素的子孙后代也被同时隐藏,此时被隐藏的元素不占据任何空间,用户的交互操作在此元素上不能生效,但是通过js语句操作dom可以来操作该隐藏元素. 实例: .display-hide {   display: none;   transition: all ease 0.8s; } .display-hide:hover { /* 当鼠标悬浮在该元素时,设置为block,此时元素也不会出现 ,因为被display隐藏的元素

Android官方入门文档[8]重叠操作栏

Android官方入门文档[8]重叠操作栏 Overlaying the Action Bar重叠操作栏 This lesson teaches you to1.Enable Overlay Mode 1.For Android 3.0 and higher only 2.For Android 2.1 and higher 2.Specify Layout Top-margin You should also read?Styles and Themes 这节课教你1.启用重叠模式 1.对An

wp8.1 app退出操作提示

微软的wp8.1 sdk相比之前wp8 sdk以及相关dll类库,微软又重新编译过,相关系统类库也经过精简,删改了部分传统dll库中的方法对象,很多常用方法对象被写进Windows.UI为前缀的命名空间中,可以看出微软wp8.1经过了一定的优化. 此处功能设计描述为,触摸一次返回键,提示是否退出app,再点一次即关闭app. 1 <Grid Background="#F5F5F5" DataContext="{Binding Path=MainPageViewModel