未知小数位转换为整数-Python和C++版本

# 纯小数转换为整数  利用的原理其实就是 小数-取整小数  那么必然有误差 只要有误差就说明还没有转换成功  转换成功就没有误差了
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;
}

在不知道小数有多少位的时候,这个小数转换为整数技巧还是蛮有用的,原理我已经说了,需要的可以收藏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值