# 纯小数转换为整数 利用的原理其实就是 小数-取整小数 那么必然有误差 只要有误差就说明还没有转换成功 转换成功就没有误差了
n = float(input()) # 0.125
y = n # y = 0.125
a = 1 # a = 1
while abs(y - int(y)) > 1e-10: # 0.125-0 >1e-10,1.25-1>1e-10, 12.5-12>1e-10,125-125=0条件终止
a *= 10 # a =10,a=100,a = 1000
y = n * a # y =1.25, y = 12.5 ,y=125
print(int(y)) # int转换一下就可以
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double x,y;
int a;
cout<<"x=";
cin>>x;
a=1;
y=x;
while(fabs(y-int(y))>1e-10)
{
a*=10;
y=x*a;
}
cout<<y<<endl;
return 0;
}
在不知道小数有多少位的时候,这个小数转换为整数技巧还是蛮有用的,原理我已经说了,需要的可以收藏。