在python中如何计算很长的一个整数乘以一个非常接近零的很小的一个数

问题描述:

在python中如何计算很长的一个整数乘以一个非常接近零的很小的一个数
例如:a是长整数,b是浮点数
a=3**123323
b=0.13**324325
求 a*b,我算的是结果是0,
我的意思是,a和b是从屏幕上输入的,因此b会被认作0,怎样调节精度,使它可以被运算。我前面说的不清楚。
1个回答 分类:综合 2014-10-08

问题解答:

我来补答
python 3.2可以用内置的decimal高精度实数模块

# -*- coding:UTF-8 -*-
import decimal
decimal.getcontext().prec=200 #200数位精度
a=decimal.Decimal(3)**decimal.Decimal(123323)
b=decimal.Decimal('0.13')**decimal.Decimal('324325')
print('\t{}\n*\n\t{}\n=\n\t{}'.format(a,b,a*b))


输出
>>>
1.0580246667188824271913168051622395865019183845414805481031905972109045173989899823133323278995752527235304667074427574782893102545428586466473016751341295216536176276017699142425172412864417270258818E+58840
*
4.7614246375708084311798542896953748676842902955614645510524621531010498656287008792909075916910899666155420657277394271571681636228412127263118451395440991242288410666335749575430087463810155494163691E-287371
=
5.0377047152729301420944880198230739560889642797996835618622967033179721708732353839970371126283680796466358080919145363745004534970704032352604175204920473255485436558304392155356717364540080252448283E-228531
>>>



所谓“屏幕输入”,就是标准输入流输入,与大数都无关,属于基本数据操作.
a=decimal.Decimal(input("输入a:")); #所谓的屏幕输入
 
 
展开全文阅读
剩余:2000
上一页:必修3第一单元
下一页:第4课时