簡體   English   中英

在C中顯示浮點的小數位

[英]Displaying Decimal places of a floating point in C

在這里,我有一些簡單的代碼,用於計算給定距離和時間的速度。

由於我們有一個除法運算符,因此需要一個float變量,但是在下面的程序中,它將無法正確顯示。

#include <stdio.h>
#include <conio.h>

int NewDR=0;
float NewSR=0;
int NewTR=0;


int main()
{ 
    printf("What is your new distance?");
    scanf("%d",&NewDR);

    printf("What is your new time?");
    scanf("%d",&NewTR);

    //NewSR = NewDR/NewTR;
    NewSR = (float)NewDR/(float)NewTR; //-Fix is here, thanks

    printf("Speed: %.2f",NewSR);

    getch();
}

輸入:

Distance: 20
Time: 3

預期產量:

Speed = 6.67

實際輸出:

Speed = 6.00

NewDR/NewTR ,由於兩個操作數都是整數,因此將執行整數除法,從而產生一個整數(在您的情況下為NEWSR = 6),然后將其分配給NEWSR 為了執行浮點除法,只需將任何一個變量強制轉換為如下所示的float

NewSR =(float) NewDR/NewTR;

更改NewSR = NewDR/NewTR; NewSR = ((float)NewDR)/((float)NewTR);

在進行算術運算之前,您需要將任何一個操作數都置於float ,否則,該運算將以int s的形式進行,並且最終結果將被提升為float [基於目標存儲數據類型。]

整數除以整數會得到整數。 更多內容,您需要明確地粘貼它。 隱式轉換僅在從較高的層次結構到較低的層次結構(例如:從flot-> int)使用時發生。

因此使用NewSR = (double) NewDR/NewTR;

它將為您解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM