关于不支援 太大的数,以及小数
因为 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;
}