这种类型的高精度除法颇为简单,直接贴上代码
//写在前面
//对于精确到小数点后任意位数的高精度除法
//只要简单的模拟除法过程就可
//在直接用除法算出小数点前的整数后
//改变被除数 a=(a%b)*10 a为被除数,b为除数
#include <iostream>
using namespace std;
int main()
{
int num1,num2;cin>>num1>>num2;//除数与被除数
int n;cin>>n;//需要精确到的位数
int temp=0;//判断负数的个数
if(num1<0)temp++;if(num2<0)temp++;
if(temp==1)cout<<'-';
if(num1<0)num1=-num1;
if(num2<0)num2=-num2;
cout<<num1/num2<<'.';
//核心代码
for(int i=0;i<n;i++)
{
num1=num1%num2*10;
cout<<num1/num2;
}
}