double隐式转换成int

double型可以强制转换成int型,即使不加强制转换,也会隐式转换,只是转换结果会丢弃小数部分,如:
double d=1.6;
int i;
i=d ; //隐式转换,i结果为1
i=(int)d ; //强制转换,i结果为1
但,如果double变量数据,超过整形数据的表示范围,(一般整数占四个字节,有符号数表示范围为:-2^31 ~ 2^31-1 ),则转换后的结果会是错误的。

时间: 2024-07-31 13:50:37

double隐式转换成int的相关文章

隐式转换和显式转换

C/C++对于数据类型的转换包括隐式转换和显式转换(强制类型转换). 一般来说,隐式转换包括以下几种情形: 1. 低精度与高精度混合运算,低精度会隐式转换成高精度类型. int a = 10; double b = 1.2; double c = a + b;//此时a会隐式转换成double类型进行运算. bool.char.short.int.long.float.double依次向上会发生隐式转换.bool类型向上转换时,false转换成0,true转换成1. [p.s.]有符号和无符号数

【转】SQL SERVER标量表达式的隐式转换

在SQL Server中的数据类型中,存在着优先级的问题.标量表达示的返回结果类型也会根据操作数的类型而定,如1 +'1'=2.而不是'11',因些Int型的优先级比VARCHAR型的优先级要高.所以在表达示的结果隐式转换成Int型. 同样对于标量函数,如一个表的一列是Int型,表中有两行值为2和3如果对这一列使用AVG函数,则结果是2,而不是2.5.但是如果这一列是Decimal类型的话,那么结果就是2.5.因为结果类型依据操作数据类型. 如下的一个Case语名 CASE WHEN <logi

Physics.Raycast重载方法的参数隐式转换引发的血案

我用Raycast检测两个物体是否碰撞,发现无论如何结果都不太对劲,ray貌似忽略了我设置的LayerMask 代码是这样的: Physics.RaycastAll(start, Vector3.down, 1 << mask); 看出来问题在哪里了么? 尼玛,根本没有Physics.Raycast(Vector3 start, out RaycastHit hit, int layerMask) 这样的重载好不好... 我不知道从哪儿得来的一个印象,觉得有这么一个重载,就一直在用. 但是为什

抑制隐式转换explicit

按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示: class String { String ( const char* p ); // 用C风格的字符串p作为初始化值 //- } String s1 = "hello"; //OK 隐式转换,等价于String s1 = String("hello"); 但是有的时候可能会不需要这种隐式转换,如下: class String { String (

javascript数据类型隐式转换

一.函数类 isNaN() 该函数会对参数进行隐式的Number()转换,如果转换不成功则返回true; alert() 输出的内容隐式的转换为字符串 二.运算符类 1.算数运算符 -  *   /  % 如果操作数不是数值,将会隐式的调用Number()函数,按照这个函数的转换规则进行转换,如果转换不成功,整个表达式返回NaN + 如果操作数都是数值,然后进行相加 任何数据类型和字符串相加,都会隐私的调用他们的toString()方法,然后返回他们拼接的结果. 如果操作数都是布尔值,那么进行N

隐式转换构造函数、仿函数、转换函数实例

class B { public: //隐式转换 B(int i) { cout << i << endl; data = i; } //仿函数 bool operator() (int i) { cout << i << endl; return i > 0; } //转换函数 operator string() { return "class_string"; } private: int data; }; int main()

【类型转换】 隐式转换 自动提升 强制转换

基本数据类型的类型转换 Java中基本数据类型共有8种,分别是:布尔型boolean,字符型char和数值型byte/short/int/long/float/double.由于字符型char所表示的单个字符与Ascii码中相应整形对应,因此,有时也将其划分到数值型中. 基本数据类型中,布尔类型boolean占有一个字节,由于其本身所代表的特殊含义,boolean类型与其他基本类型不能进行类型的转换(既不能进行自动类型的提升,也不能强制类型转换), 否则,将编译出错. 数值类型在内存中直接存储其

Java基础——隐式转换vs强制转换

在定义变量时,有许多要注意的问题,一不小心就会出现损失精度或者不兼容类型等问题. 例如: 1.定义长整型数据时,必须加后缀l或L long l =123456789012345L 2.定义单精度类型时(7-8位有效数字),必须加后缀 f 或 F float f = 12.5F 3. boolean类型不可以转换为其它的数据类型. 这其中,我们常常会遇到数据类型的转换问题,最为常见的要属隐式转换和强制转换了,我们来分析一下. 隐式转换 特征: 从小到大,可以隐式转换,数据类型将自动提升. byte

隐式转换和显式转换及强制转换的区别【转】

隐式转换和显式转换及强制转换的区别 string strType = "123"; object objType= (object)strType;//可以不要,隐式转换, 要的为显式转换 string strType2 = (string)objType; //必须要,显式转换 int intType = (int)strType; //错误,不能通过编译 int intType = (int)objType; //错误,能通过编译 int intType = Convert.ToI