程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C說話數據類型轉換實例代碼

C說話數據類型轉換實例代碼

編輯:關於C++

C說話數據類型轉換實例代碼。本站提示廣大學習愛好者:(C說話數據類型轉換實例代碼)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話數據類型轉換實例代碼正文


數據類型轉換就是將數據(變量、表達式的成果)從一品種型轉換到另外一品種型。例如,為了保留小數你可以將int類型的變量轉換為double類型。

數據類型轉換的普通格局為:

(type_name) expression

type_name為要轉換到的數據類型,expression為表達式。例如:

(float) a; //把a轉換為實型
(int)(x+y); //把x+y的成果轉換為整型
(float) 100; //將一個常量轉換為實型

【示例】將整數轉換為浮點數:

#include <stdio.h>
int main(){
 int sum = 17, count = 5;
 double mean;
 mean = (double) sum / count;
 printf("Value of mean : %f\n", mean);
 return 0;
}

運轉成果:

Value of mean : 3.400000

須要留意的是,類型轉換運算符( )的優先級高於/ ,(double) sum / count會先將 sum 轉換為 double 類型,然後再停止除法運算。假如寫作(double) (sum / count) ,那末運轉成果就是 3.000000。

這類由法式員顯式停止的轉換稱為強迫類型轉換。除強迫類型轉換,在分歧數據類型的混雜運算中編譯器也會隱式地停止數據類型轉換,稱為主動類型轉換。

主動類型轉換遵守上面的規矩:

1.若介入運算的數據類型分歧,則先轉換成統一類型,然落後交運算。

2.轉換按數據長度增長的偏向停止,以包管精度不下降。例如int型和long型運算時,先把int量轉成long型後再停止運算。

3.一切的浮點運算都是以雙精度停止的,即便僅含float單精器量運算的表達式,也要先轉換成double型,再作運算。

4.char型和short型介入運算時,必需先轉換成int型。

5.在賦值運算中,賦值號雙方的數據類型分歧時,須要把左邊表達式的類型將轉換為右邊變量的類型。假如左邊表達式的數據類型長度比右邊長時,將喪失一部門數據,如許會下降精度。

下圖表現了類型主動轉換的規矩:

【示例】主動數據類型轉換。

#include<stdio.h>
int main(){
 float PI=3.14159;
 int s1, r=5;
 double s2;
 s1 = r*r*PI;
 s2 = r*r*PI;
 printf("s1=%d, s2=%f\n", s1, s2);
 return 0;
}

運轉成果:

s1=78, s2=78.539753

在盤算表達式r*r*PI時,r 和 PI 都轉換成double類型,表達式的成果也為double類型。但因為 s1 為整型,所以賦值運算的成果仍為整型,捨去了小數部門。

留意是將小數部門直接丟失落,而不是依照四捨五入向前捨入。

不管是強迫轉換或是主動轉換,都只是為了本次運算的須要而對變量的數據長度停止的暫時性轉換,而不轉變數聽說明時對該變量界說的類型。

請看上面的例子:

#include<stdio.h>
int main(){
 float f=5.75;
 printf("(int)f=%d, f=%f\n",(int)f, f);
 return 0;
}

運轉成果:

(int)f=5, f=5.750000

以上就是對 C說話數據類型的轉換的實例詳解,願望能贊助進修 C說話基本常識的同窗。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved