關於不支援 太大的數,以及小數
因為 int 的儲存格式是 integer(整數),所以無法儲存 小數部分
而且 int 長度是 4 bytes,一旦平方...就 overflow(溢位) 了
因此將宣告 a 的型態改成 double (浮點數,可以儲存小數,長度 8 bytes) 就行了
至於大的數,可以在宣告前面加上 long 形成長浮點數 (12 bytes)
平方是用 math.h 定義的函式 pow
平方根則是用 sqrtl (long double 型態)
複製程式
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <iostream>
using namespace std;
int main(void)
{
long double a;
cout << "輸入要平方之數\n";
cin >> a;
cout.setf(ios::fixed);
cout << "平方後 = " << pow(a, 2) << endl;
cout << "開根號 = " << sqrtl(a) << endl;
cin.sync();
cin.get();
return 0;
}