什麼?1除以2等於0

systemyf發表於2020-10-10

沒錯,下面這段程式碼的輸出就是0。

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
    int a1=1,a2=2;
    cout<<a1/a2<<endl;
    return 0;
}

這就涉及到一個有趣的問題了
隱式型別轉換,c++裡最坑新手的玩意,反人類意識的設計。
會在一下幾種情況出現
1、不同型別變數賦值
2、不同型別變數計算
3、函式的返回值
4、強制型別轉換
預設就是低精度轉高精度,同級別運算仍舊為同級別。
所以int狀態下1除以2為0.5,轉為int後便為0。
*浮點操作要謹慎,最好都加上.0。

相關文章