草庐IT

java - 在 Java 中向零舍入

如何在Java中向零舍入?所以-1.9变成-1.0,-0.2变成0.0,3.4变成3.0,依此类推。Math.round()是否能够更改某些参数? 最佳答案 我不相信标准库有这样的功能。问题是你要求非常不同的行为(从数学上讲)取决于数字是大于还是小于0(即负值四舍五入,正值四舍五入)可以使用以下方法:publicdoublemyRound(doubleval){if(val 关于java-在Java中向零舍入,我们在StackOverflow上找到一个类似的问题:

python - 四舍五入到最接近的 5/100 的最快方法

我有我想要的数字:1.215145156155=>1.21.368161685161=>1.351.578414616868=>1.6(*注意:百位为零时不要标出。)执行此操作的最快方法是什么?这是我现在拥有的,速度不够快:defrounder(v):v=str(round(float(v),2))iflen(v)==3:v=v+str(0)d0=int(v[0])#onesd1=int(v[2])#tenthsd2=int(v[3])#hundredthsifd2=7:ifd1!=9:returnstr(d0)+'.'+str(d1+1)ifd1==9:returnstr(d0+1)

Python:在一般情况下 a 可以四舍五入为 b

作为我正在编写的一些单元测试代码的一部分,我编写了以下函数。其目的是确定“a”是否可以四舍五入为“b”,而不管“a”或“b”有多准确。defcouldRoundTo(a,b):"""Canyouroundatosomenumberofdigits,suchthatitequalsb?"""roundEnd=len(str(b))ifa==b:returnTrueforxinrange(0,roundEnd):ifround(a,x)==b:returnTruereturnFalse这是函数的一些输出:>>>couldRoundTo(3.934567892987,3.9)True>>>c

Python:防止 Pandas 系列中的值四舍五入为整数

我试图在系列上设置一些值,但它会自动舍入为整数,我应该怎么做才能防止这种情况发生?from__future__importdivisionimportpandasaspdIn[100]:series=pd.Series(range(20))In[101]:series[10]Out[101]:10In[102]:series[10]=0.05In[103]:series[10]Out[103]:0In[104]:series[10]=2.5In[105]:series[10]Out[105]:2In[106]:series[10]=float(2.5)In[107]:series[10

python - 在 Python 中四舍五入到任意精度的有效方法

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion以下问题的Pythonic解决方案是什么?我正在读取分辨率为0.5的温度传感器。我需要给它写信(它有一个可编程的恒温器输出),分辨率也是0.5。所以我编写了这个函数(Python2.7)来将作为输入的float四舍五入到最接近的.5:defpoint5res(number):decimals=number-int(number)roundnum=round(number,0)returnr

python - Round 在 Python 中向下 float 以仅保留一位非零小数

我有一个只用float填充的Python列表:list_num=[0.41,0.093,0.002,1.59,0.0079,0.080,0.375]我需要将此列表四舍五入以获得:list_num_rounded=[0.4,0.09,0.002,1.5,0.007,0.08,0.3]问题:将1.59四舍五入到1.5很容易做到。但是,我的问题是float小于1。问题:基本上,我需要将所有float向下舍入,以便:如果float尝试:这是我尝试过的:list_num_rounded=[]foreleminlist_num:ifelem>0.01andelem0.001andelem0.1:l

Python 舍入不一致

如果我告诉Pythonv.3.4.3,round(2.5),那么它会输出2。不过,如果我告诉它round(1.5)那么它也会输出2。同样,round(3.5)给出4,而round(4.5)也给出4。不过,我需要Python以一致性舍入。具体来说,只要我在两个整数之间输入一个数字,它就需要四舍五入。所以round(1.5)=1和round(2.5)=2,而round(1.6)=2和往常一样。我该如何解决?编辑:我已经阅读了round函数的文档,并了解这是它的预期行为。我的问题是,我该如何改变这种行为,因为出于我的目的,我需要向下舍入1.5。 最佳答案

python - 如何在 python 中四舍五入到更高的 10 位

我有一堆float,我想将它们四舍五入到下一个最高的10倍数。例如:10.2shouldbe2010.0shouldbe1016.7shouldbe2094.9shouldbe100我只需要它在0-100范围内。我试过math.ceil()但这只会四舍五入到最接近的整数。提前致谢。 最佳答案 frommathimportceildefceil_to_tens(x):returnint(ceil(x/10.0))*10编辑:好吧,既然我对这个答案有一个不当的“好答案”徽章,我认为应该使用decimal模块为社区提供一个合适的解决方案不

python - 如何截断小数类型并保留为小数类型而不四舍五入?

我需要在不舍入的情况下截断小数类型并保留小数类型,以最高效的处理器方式。我认为数学选项会返回一个float。我相信量化选项会返回一个四舍五入的数字。Str选项是处理代价高昂的方式。是否有一种简单、直接的方法可以将超过指定十进制长度的小数类型的数字简单地删除? 最佳答案 quantize方法确实有一个rounding参数来控制值的舍入方式。ROUND_DOWN选项似乎可以满足您的需求:ROUND_DOWN(towardszero)fromdecimalimportDecimal,ROUND_DOWNdeftruncate_decima

python - 在 python 中四舍五入科学记数法

我在python中有一个类似2.32432432423e25的数字,它是计算的结果。我想将其四舍五入到小数点后3位以获得输出:2.324e25我尝试过使用:x=2.32432432423e25number_rounded=round(x,3)但是当我打印number_rounded时,它会输出一个与x格式相同的数字。如何将x的显示限制为仅4位有效数字? 最佳答案 为此您需要使用字符串格式:'{:0.3e}'.format(2.32432432423e25)原因是round用于指定个位后的位数,当您的数字为O(25)时,这并不真正相关