-2
,我得到k = 0。它不應該是K = 0.8? 代碼有什麼問題?編譯此代碼後,找不到錯誤信息
#include <stdio.h>
#include <math.h>
void main()
{
int x=8;
int y=10;
int m=6;
float k;
k=x/y;
printf("k=%f",k);
}
,我得到k = 0。它不應該是K = 0.8? 代碼有什麼問題?編譯此代碼後,找不到錯誤信息
#include <stdio.h>
#include <math.h>
void main()
{
int x=8;
int y=10;
int m=6;
float k;
k=x/y;
printf("k=%f",k);
}
類型轉換會比較有用而簡單。
int x=8;
int y=10;
int m=6;
float k;
k=(float)x/y;
printf("k=%f",k);
儘管您分配除法的結果到float
,結果本身計算在整數。這是因爲兩個操作數都是int
類型。
有解決這個問題的多種方式 - 例如,通過分配紅利k
,然後將其除以除數,像這樣:
int x=8;
int y=10;
int m=6;
float k = x;
k /= y;
printf("k=%f",k);
int/int = int。 –
,因爲你的代碼中的一個隱式轉換從浮點數轉換爲整數來糾正它:'k =(float)x /(float)y; printf(「k =%g」,k);' – Raindrop7