溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

C語(yǔ)言取整及函數(shù)使用的方法

發(fā)布時(shí)間:2022-08-10 14:10:09 來(lái)源:億速云 閱讀:270 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹“C語(yǔ)言取整及函數(shù)使用的方法”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“C語(yǔ)言取整及函數(shù)使用的方法”文章能幫助大家解決問(wèn)題。

    取整

    關(guān)于"取整"這個(gè)詞似乎我們既熟悉又會(huì)感到陌生,熟悉是因?yàn)槲覀冊(cè)诰幊痰臅r(shí)候經(jīng)常會(huì)用到取整。陌生是因?yàn)橛譀](méi)有好好深度理解過(guò)這取整,那么接下來(lái)就圍繞取整作為一個(gè)探討。

    取整?取整字面意思非常好理解無(wú)非就是對(duì)整數(shù)取整像2.5是一個(gè)浮點(diǎn)數(shù)我們對(duì)其進(jìn)行取整的話(huà)就是2的整數(shù)。代碼示例如下

    #define _CRT_SECURE_NO_WARNINGS 1
    #include<stdio.h>
    int main(void)
    {
    	int a = 2.99;
    	int b = -2.99;
    	printf("a=%2d\n", a);
    	printf("b=%2d\n", b);
    	return 0;
    }

    運(yùn)行結(jié)果

    a =  2

    b = -2

    說(shuō)明?在上述代碼當(dāng)中我們可以知道并不是按照我們數(shù)學(xué)意義上的四舍五入而是不管你的小數(shù)位多大都的取整,這也是為什么我變量小數(shù)點(diǎn)取怎么大的原因也就是想讓大家能非常直觀的理解這個(gè)概念。一句話(huà):直接把小數(shù)點(diǎn)后面的數(shù)字給省略了。

    總結(jié)?「C語(yǔ)言」取整默認(rèn)采用的是"0向取整"。

    ⒈trunc - 0向取整

    trunc 的頭文件是 ? #include<math.h>

    拓展知識(shí)點(diǎn)?對(duì)于「C語(yǔ)言」來(lái)說(shuō)它實(shí)際上是有一個(gè)取整函數(shù)的相信很多小伙伴們是不知道「C語(yǔ)言」有這個(gè)trunc取整函數(shù)的。

    trunc 參數(shù)如下&darr;

         double trunc  (     double x);
          float truncf (      float x);
    long double truncl (long double x);

    代碼示例如下&darr;

    #include<stdio.h>
    #include<math.h>
    int main(void)
    {
    	printf("%2f\n", trunc(2.99));
    	printf("%2f\n", trunc(-2.99));
    	printf("%2d\n", (int)trunc(2.99));
    	printf("%2d\n", (int)trunc(-2.99));
    	return 0;
    }

    運(yùn)行結(jié)果

     2

    -2

     2

    -2

    注?這里我們需要注意函數(shù)的返回值都是浮點(diǎn)類(lèi)型,如果你是用整形打印的話(huà)你需要把類(lèi)型進(jìn)行強(qiáng)轉(zhuǎn)成(int)

    說(shuō)明?在C語(yǔ)言當(dāng)中默認(rèn)采用的是0向取整的方式來(lái)進(jìn)行的。

    ⒉floor -地板取整

    floor 的頭文件是 ? #include<math.h>

    floor 參數(shù)如下&darr;

    double floor (double x);

    代碼示例如下&darr;

    #include<stdio.h>
    #include<math.h>
    int main(void)
    {
    	printf("%2d\n", (int)floor(2.99));
    	printf("%2d\n", (int)floor(-2.99));
    	printf("%2d\n", (int)floor(2.99));
    	printf("%2d\n", (int)floor(-2.99));
    	return 0;
    }

    運(yùn)行結(jié)果

     2

    -3

     2

    -3

    注?地板取整我們需要記住它是往-&infin;當(dāng)中靠近的,從上述代碼當(dāng)中的運(yùn)行結(jié)果相信你也可以看的出來(lái)都是往-&infin;當(dāng)中靠近的。

    ⒊ceil-無(wú)窮大取整

    ceil 的頭文件是 ? #include<math.h>

    ceil 參數(shù)如下&darr;

    double ceil (double x);

    代碼示例如下&darr;

    #include<stdio.h>
    #include<math.h>
    int main(void)
    {
    	printf("%2d\n", (int)ceil(2.99));
    	printf("%2d\n", (int)ceil(-2.99));
    	printf("%2d\n", (int)ceil(2.99));
    	printf("%2d\n", (int)ceil(-2.99));
    	return 0;
    }

    運(yùn)行結(jié)果

     3

    -2

     3

    -2

    注?我們需要記住它是往+&infin;當(dāng)中靠近的,從上述代碼當(dāng)中的運(yùn)行結(jié)果相信你也可以看的出來(lái)都是往+&infin;當(dāng)中靠近的。

    ⒋round-四舍五入

    round 的頭文件是 ? #include<math.h>

    round 參數(shù)如下&darr;

         double round  (double x);
          float roundf (float x);
    long double roundl (long double x);

    代碼示例如下&darr;

    #include<stdio.h>
    #include<math.h>
    int main(void)
    {
    	printf("%2d\n", (int)round(2.99));
    	printf("%2d\n", (int)round(-2.01));
    	printf("%2d\n", (int)round(2.01));
    	printf("%2d\n", (int)round(-2.99));
    	return 0;
    }

    運(yùn)行結(jié)果

     3

    -3

     2

    -3

    注?這就是在我們數(shù)學(xué)當(dāng)中的四舍五入的方式。

    關(guān)于“C語(yǔ)言取整及函數(shù)使用的方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

    向AI問(wèn)一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI