草庐IT

python - 具有表示错误的四舍五入 float 到最接近和正确的结果

我有一个情境当经典representationerror在Python中开始成为一个问题:我需要将它们用于Numpy中的Matrix运算,并且decimal类型尚不支持。你们都知道如果我执行111.85*111.85我会得到12510.422499999999但是如果我round(12510.422499999999,4)我可以得到正确的结果当然是12510.4225。但实际的问题是:这一轮的事情是个好主意和好做法吗?这对所有情况都有效吗?有时..999小数点的小数点位置可能更多最后,如何获得适当的小数位数以用于所有可能值的舍入? 最佳答案

python - 将时间四舍五入到最接近的秒 - Python

我有一个包含超过500000个日期和时间戳的大型数据集,如下所示:datetime2017-06-2500:31:53.9932017-06-2500:32:31.2242017-06-2500:33:11.2232017-06-2500:33:53.8762017-06-2500:34:31.2192017-06-2500:35:12.634如何将这些时间戳四舍五入到最接近的秒数?我的代码是这样的:readcsv=pd.read_csv(filename)log_date=readcsv.datelog_time=readcsv.timereadcsv['date']=pd.to_d

python - Django F() 除法​​ - 如何避免四舍五入

我有这个代码:q=MyModel.objects.order_by('-value1').annotate(res=ExpressionWrapper((F('value1')/F('value2')),output_field=FloatField()),)foriinq:print(i.value1,i.value2,i.res)因此,输出将是:5100.0120.0但是我需要5100.5120.5WyF()四舍五入结果?如何不这样做?谢谢! 最佳答案 只需利用F()对乘法的支持即可将一个因数转换为十进制数。组合表达式看起来像:

python - 使用 .format() 打印可变字符串和四舍五入的数字

我想打印这样的东西:你好¦7.16这是我正在使用的代码MyString='Hello'MyFloat=7.157777777print"{}¦{0:.2f}".format(MyString,MyFloat)但是我得到了错误:ValueError:cannotswitchfromautomaticfieldnumberingtomanualfieldspecification如果我尝试:MyString='Hello'MyFloat=7.157777777print"{s}¦{0:.2f}".format(MyString,MyFloat)或str而不是s我得到错误:KeyError:

python - 将 Python pandas 数据框中的每个数字四舍五入为 2 位小数

这有效p_table.apply(pd.Series.round)但是它没有小数位DocumentationsaysimportpandasaspdSeries.round(decimals=0,out=None)我试过这个p_table.apply(pd.Series.round(2))但得到这个错误:unboundmethodround()mustbecalledwithSeriesinstanceasfirstargument(gotintinstanceinstead)如何将数据框中的所有元素四舍五入到小数点后两位?[编辑]想通了。importnumpyasnpnp.round

python - Python中嵌套数据结构中的四舍五入小数

我有一个处理嵌套数据结构的程序,其中底层类型通常以小数结束。例如x={'a':[1.05600000001,2.34581736481,[1.1111111112,9.999990111111]],...}是否有一种简单的pythonic方法来打印这样的变量,但将所有float四舍五入到(比如)3dp并且不假设列表和字典的特定配置?例如{'a':[1.056,2.346,[1.111,10.000],...}我在想类似的东西pformat(x,round=3)或者可能pformat(x,conversions={'float':lambdax:"%.3g"%x})除了我不认为他们有这种

python - 在 Python 中将答案四舍五入到小数点后两位

我遇到的问题是我将结果四舍五入到小数点后两位。我的应用程序获得了正确的结果,但是,我很难像使用货币那样将应用程序四舍五入到最接近的小数位cost=input("\nEnterthe12monthcostoftheOrder:")cost=float(cost)print("\n12MonthCost:",cost*1,"USD")print("6MonthCost:",cost*0.60,"USD")print("3MonthCost:",cost*0.36,"USD")例如,如果12个月的价格为23美元,则6个月的价格为13.799999999999999,但我希望它显示13.80我

Python 3 十进制四舍五入与 ROUND_HALF_UP 上下文

任何人都可以解释或提出修复,为什么当我在Python3中将小数舍入为四舍五入时,它会将2.5舍入为2,而在Python2中它会正确舍入为3:Python3.4.3和3.5.2:>>>importdecimal>>>context=decimal.getcontext()>>>context.rounding=decimal.ROUND_HALF_UP>>>round(decimal.Decimal('2.5'))2>>>decimal.Decimal('2.5').__round__()2>>>decimal.Decimal('2.5').quantize(decimal.Decima

python - 在 jinja2 括号中四舍五入

我想一般来说,我对jinja2括号中允许的操作感到好奇,例如我想做的是像这样对嵌入式数据执行操作:{{round(255*(mileage['chevy']-mileage['ford']))/1000}}这会在回溯时抛出错误:UndefinedError:'round'isundefined类似地,当我尝试在括号中的jinjablock中使用“abs”时,我得到一个未定义的错误——即使它们都是标准的库函数。有没有什么方法可以在模板渲染期间而不是在传递数据之前执行此操作? 最佳答案 jinja2模板语言不同于python语言。在ji

python - 四舍五入除以 2 的幂

我正在实现教科书中的量化算法。我正处在一个可以正常工作的地步,除了我在四舍五入时遇到了小数错误。教科书对此是这样说的:Roundeddivisionby2^pmaybecarriedoutbyaddinganoffsetandright-shiftingbypbitpositions现在,我了解了右移,但他们在谈论什么偏移量?这是我的示例代码:defscale(x,power2=16):ifx>power2)else:returnx>>power2defmain():inp=[12595827,-330706,196605,-387168,-274244,377496,-241980,