舉例:
unsigned short utemp ;
double dtemp ;
double * ptemp = dtemp*utemp; 可能出錯 有可能本來是很小的資料結果變成非常大的資料
正確的寫法是:double * ptemp = dtemp*(double)utemp; 可能出錯
unsigned short uresult = 0;
if (dtemp<0) //如果乙個double資料有可能是負數,但是需要賦值給乙個無符號變數,可以嘗試將小於0的置0;
uresult = dtemp;
否則,如果強制uresult = (unsigned short)dtemp;
此時if(-1if(dtemp<-1) ,(unsigned short)dtemp;實際計算機輸出-1的補碼,比如如果dtemp;是-1,(unsigned short)dtemp就等於了65535之,乙個很大的資料。是錯誤的
舉例1:
double dtemp1 = -0.002;
unsigned short dtemp2= 100;
double dte*** = dtemp1 * dtemp2;// dte***的值是-0.2
unsigned short dtemp4 = dte***;//dtemp4的值是0
舉例2:
double dtemp1 = -0.01;
unsigned short dtemp2= 100;
double dte*** = dtemp1 * dtemp2;// dte***的值是-1
unsigned short dtemp4 = dte***;//dtemp4的值是65535
舉例3:
double dtemp1 = -0.02;
unsigned short dtemp2= 100;
double dte*** = dtemp1 * dtemp2;// dte***的值是-2
unsigned short dtemp4 = dte***;//dtemp4的值是65534
題外話:定義指標並初始化
double *ptemp;
ptemp = new double[100];
memset(ptemp, 0, 100*sizeof(double));
mysql 隱式轉換 mysql中的隱式轉換
在mysql查詢中,當查詢條件左右兩側型別不匹配的時候會發生隱式轉換,可能導致查詢無法使用索引。下面分析兩種隱式轉換的情況 看表結構 phone為 int型別,name為 varchar 兩種情況都可以用到索引,這次等號右側是 2 注意帶單引號喲,左側的索引欄位是int型別,因此也會發生隱式轉換,但...
隱式轉換中隱式引數與隱式函式的使用
隱式引數的使用 要定義多個隱式引數時,需要使用柯里化函式。隱式轉換作用就是 當呼叫方法時,不必手動傳入方法中的隱式引數,scala會自動在作用域範圍內尋找隱式值自動傳入。1 同型別的引數的隱式值只能在作用域內出現一次,同乙個作用域內不能定義多個型別一樣的隱式值。2 implicit 關鍵字必須放在隱...
Scala中的隱式轉換函式 隱式引數和隱式類
隱式轉換函式 所謂隱式轉換函式指的是implicit關鍵字修飾的且只有乙個引數的函式,其作用是 1.隱式轉換增強現有型別,2.隱式轉換做引數型別轉換 1.例如 inplicit def int2string n int string n.tostring 上案例 我們把fruit物件轉換成了monk...