1樓:大野瘦子
因為int 型本身沒小數部分,int和int型的資料操作,得到的結果肯定是整數型的,所以小數部分直接去掉了,就算用%f去輸出,也不會是正確的結果。
例如:int a=5, b=3;
float c;
c = a/b; // 輸出結果為1.0
c是float型的,按常理c應該等於1.667,但是由於被除數(即變數a)的資料型別為int型,所以在執行完a/b後,運算結果會轉換為int型(即捨去小數),故a/b = 1,之後再將取整後的資料(即整數1)轉換為float型別(即1.0)賦值給變數c,所以最後c=1.
0c語言有以下幾種取整方法:
1、直接賦值給整數變數。如:
int i = 2.5; 或 i = (int) 2.5;
這種方法採用的是捨去小數部分
2、c/c++中的整數除法運算子「/」本身就有取整功能(int / int),但是整數除法對負數的取整結果和使用的c編譯器有關。
3、使用floor函式。
floor(x)返回的是小於或等於x的最大整數。如:
floor(2.5) = 2
floor(-2.5) = -3
4、使用ceil函式。
ceil(x)返回的是大於x的最小整數。如:
ceil(2.5) = 3
ceil(-2.5) = -2
floor()是向負無窮大舍入,floor(-2.5) = -3;ceil()是向正無窮大舍入,ceil(-2.5) = -2。
2樓:天雲一號
c語言規定除法運算子( / )的運算結果的資料型別與被除數的資料型別儲存一致,所以一個整數除以另一個整數的結果為整數。
舉例如下:
int a=5, b=3;
float c;
c = a/b; // 輸出結果為1.0解釋如下:
雖然變數c是float型的,按常理c應該等於1.667,但是由於被除數(即變數a)的資料型別為int型,所以在執行完a/b後,運算結果會轉換為int型(即捨去小數),故a/b = 1,之後再將取整後的資料(即整數1)轉換為float型別(即1.0)賦值給變數c,所以最後c=1.0
3樓:匿名使用者
int 因為其儲存單元只有2個位元組,int a=7,b=5,c;c=a/b;本來c是等於正確值的,但是2個位元組的二進值只能儲存到整數部分,小數部分就被切去了
4樓:匿名使用者
與你定義的除數,被除數和結果的型別有關
5樓:窮日子過
那要看你用的是怎麼輸出格式了
c語言中 兩個整形變數相除的結果是不是隻取整數部分 不用四捨五入嗎??
6樓:魂鬥水下八關
所謂的整形,就是取整數部分。 如果a=3.98 則 int a=3。a=58.49,則 int a=58。取整隻看整數部分取值,而不是四捨五入哦!
7樓:匿名使用者
是的,比如 10 / 3 的結果是 3,而不是3.33333
如果是 10.0 / 3,結果就是3.33333
c語言中什麼運算只取整數部分,什麼時候不但取整,還要四捨五入?? 發現c語言中很多時候不用四捨五入
8樓:夢羽天堂
取整要看型別的自動轉換了,,比如a和b都是整形資料,那麼a/b的結果就一定是整形。結果就取整數部分,如果其中有一個是浮點型,那麼結果就是浮點型,但是不會四捨五入,如果需要四捨五入那麼應該寫成a/b+0.5.
自動轉換的順序是char,short,int,float,double,越往後優先順序越高
9樓:狂
取整的話 還是要看資料型別的 int型別的除法就是取整的
至於四捨五入什麼的 沒有專門的規定 可以自己處理一下即可
10樓:匿名使用者
定義int的時候就取整了
11樓:匿名使用者
c語言裡面都沒有四捨五入。的都是隻取整數部分。
12樓:鬼火狼煙
到底需要四捨五入還是直接取整不是程式說了算了,是根據實際情況說了算的這個要看你需要的結果了
比如說double x=1.3;
printf("%d",int(x)) 取整printf("%d",int(x+0.5)) 四捨五入
c語言除法取整問題
13樓:活寶逗比先生
1.引入標頭檔案#include "stdafx.h"#和include "stdio.h"。
2.定義主函式void main(){},插入如下**:
float pi=3.1415926;
int number=0;
number=(int)pi;
printf("%d\n",number);
3.按紅歎號測試。c語言有以下幾種取整方法: 1、直接賦值給整數變數... 而下面介紹的取整函式返回值是double
14樓:應有福勵風
n=2,因為左面的值為假,右面就不做了,所以n的值不發生變化,仍為2
15樓:匿名使用者
函式floor表示向下取整, x = floor(3.5) ---> x =3
函式round表示向上取整, x = round(3.5) ---> x = 4
double a = 3.3; int b = (int)a; 這個是都是向下取整, --->b = 3
16樓:天臨契承
變數是int 的話
在運算時 自動取整
c語言中float型資料怎麼 取整數部分演算法 或取小數部分
17樓:蟲心菜
分析如下:來
一種簡單的辦源
法是直接強制轉換到int型就是整數部分。減去這個int型就是小數部分了。
**如下:
float n=12.223;
int x=(int)n;
float y=n-(float)x;
得出的x為資料的整數部分,y為資料的小數部分。
拓展資料:
浮點型資料型別,float 資料型別用於儲存單精度浮點數或雙精度浮點數。浮點數使用 ieee(電氣和電子工程師協會)格式。浮點型別的單精度值具有 4 個位元組,包括一個符號位、一個 8 位 excess-127 二進位制指數和一個 23 位尾數。
尾數表示一個介於 1.0 和 2.0 之間的數。
由於尾數的高順序位始終為 1,因此它不是以數字形式儲存的。此表示形式為 float 型別提供了一個大約在-3.4e+38 和 3.
4e+38 之間的範圍。
18樓:捐你妹
一種簡單的辦法是直接強制轉換到int型就是整數部分。
減去這個int型就是小數部分了。
19樓:
float x=1234.567,z;
long int y;
取整數部分: y = (int) x;
取小數部分: z = x - y;
20樓:匿名使用者
float n=12.223;
int x=(int)n;
float y=n-(float)x;
21樓:匿名使用者
小數取整
#include
void main()
c語言中將輸入的整數逆轉顯示,c語言用迴圈的方法,把輸入的一個整數,倒序輸出
思路 可以利用while迴圈依次對其進行對10取餘輸出併除10操作直到其為0為止,輸出的結果就是該整數的倒序。include int main return 0 輸出 12345 5 4 3 2 1 取餘加除法就可以了 include int main return 0 include includ...
c語言中,兩整數相除,求帶兩位小數的結果,求完整程式
c語言中,兩整數相除,帶兩位小數的結果,可以使用下面的方法 include int main int a,b printf please input a scanf d a printf please input b scanf d b printf a b 2f float a b 執行結果如下 ...
怎麼判斷整數是否包含某位數在c 語言中
小妥 如果是數值的話,那麼將原始的數值減去取整後的數值如果大於0就表示有小數 if n int n 0 return true 如果是字串的話,有兩種方法,一種是將字串轉換為數值後用上面說的方法判斷,另一種是逐字判斷是否包含字元小數點 利用迴圈求餘運算,可以求出一個整數所有位上的數字,特點是倒序順序...