草庐IT

试除法

全部标签

python - 在 Python 中使用除法运算符时如何获得十进制值?

例如,标准除法符号“/”舍入为零:>>>4/1000但是,我希望它返回0.04。我用什么? 最佳答案 共有三个选项:>>>4/float(100)0.04>>>4/100.00.04这与C、C++、Java等的行为相同,或者>>>from__future__importdivision>>>4/1000.04您还可以通过将参数-Qnew传递给Python解释器来激活此行为:$python-Qnew>>>4/1000.04第二个选项将是Python3.0中的默认选项。如果要进行旧的整数除法,则必须使用//运算符。编辑:添加了关于-Qn

python - Python 2 和 Python 3 中的整数除法

如何在Python2.7中将两个数字相除并得到小数的结果?我不明白为什么会有区别:在Python3中:>>>20/151.3333333333333333在Python2中:>>>20/151这不是模数吗? 最佳答案 在Python2.7中,如果输入是整数,则/运算符是整数除法。如果你想要浮点除法(这是我一直喜欢的),只需使用这个特殊的导入:from__future__importdivision看这里:>>>7/23>>>from__future__importdivision>>>7/23.5>>>整数除法使用//,取模使用%:

python - 为什么 Python 给出平方根的 "wrong"答案? Python 2 中的整数除法是什么?

这个问题在这里已经有了答案:Whydoesthedivisiongetroundedtoaninteger?[duplicate](13个回答)关闭10个月前。x=16sqrt=x**(.5)#returns4sqrt=x**(1/2)#returns1我知道我可以importmath并使用sqrt,但我正在寻找上述问题的答案。Python2中的整数除法是什么?此行为已在Python3中修复。 最佳答案 在Python2中,sqrt=x**(1/2)进行整数除法。1/2==0.所以x(1/2)等于x(0),也就是1。没有错,这是对不

c++ - 如何保持乘法和除法的顺序?

在我的32位嵌入式C++应用程序上,我需要执行以下计算:calc(intmilliVolts,intticks){returnmilliVolts*32767*65536/1000/ticks;}现在,由于我平台上的int有32位,并且毫伏的范围为[-1000:1000],因此milliVolts*32767*65536部分可能会导致整数溢出。为了避免这种情况,我将因子65536拆分为1024、32和to并重新排序如下:calc(intmilliVolts,intticks){returnmilliVolts*32767*32/1000*1024/ticks*2;}这样,只要编译器保留

java - C中的Python样式整数除法和模数

在Python和Ruby中,有符号整数除法向负无穷大截断,有符号整数模数与第二个操作数的符号相同:>>>(-41)/3-14>>>(-41)%31但是,在C和Java中,有符号整数除法会向0截断,并且有符号整数模与第一个操作数具有相同的符号:printf("%d\n",(-41)/3);/*prints"-13"*/printf("%d\n",(-41)%3);/*prints"-2"*/在C中执行与Python和Ruby中相同的除法和模数的最简单和最有效的方法是什么? 最佳答案 旧的C标准中没有指定带符号整数除法的舍入方向。但是,

c++ - float 和 double 的快速乘法/除法 (C/C++)

在我正在编写的软件中,我正在对我的值进行数百万次乘法或除以2(或2的幂)。我真的希望这些值为int这样我就可以访问位移运算符inta=1;intb=a但是,我不能,我必须坚持double。我的问题是:由于有标准的double表示(符号、指数、尾数),有没有办法使用指数来获得2的幂的快速乘法/除法?我什至可以假设位数将是固定的(该软件将在始终具有64位长double的机器上运行)P.S:是的,算法大多只做这些操作。这是瓶颈(它已经是多线程的了)。编辑:还是我完全弄错了,聪明的编译器已经为我优化了?临时结果(用Qt来测量时间,矫枉过正,但我​​不在乎):#include#include#i

c++ - C++ 中的除法没有按预期工作

我在做其他事情,但结果都是零,所以我做了这个简约的例子,输出仍然是0。#includeintmain(intargc,char**argv){doublef=3/5;std::cout我错过了什么? 最佳答案 你错过了3和5是整数的事实,所以你得到整数除法。要让编译器执行浮点除法,请将其中一个设为实数:doublef=3.0/5; 关于c++-C++中的除法没有按预期工作,我们在StackOverflow上找到一个类似的问题: https://stackove

go - 带返回商和余数的除法

我尝试从Python迁移到Golang。我目前正在研究一些数学运算,并想知道如何获得除法结果的商和余数。我将在下面分享一个等效的Python代码。hours,remainder=divmod(5566,3600)minutes,seconds=divmod(remainder,60)print('%s:%s'%(minutes,seconds))#32:46以上将是我的目标。谢谢。 最佳答案 整数除法加模数完成此操作。funcdivmod(numerator,denominatorint64)(quotient,remainderi

math - 如何在 Go 中执行除法

我正在尝试在Go中执行一个简单的除法。fmt.Println(3/10)这会打印0而不是0.3。这有点奇怪。有人可以分享这背后的原因吗?我想在Go中执行不同的算术运算。谢谢 最佳答案 二元运算3/10的操作数是无类型常量。规范saysthisaboutbinaryoperationswithuntypedconstantsiftheoperandsofabinaryoperationaredifferentkindsofuntypedconstants,theoperationand,fornon-booleanoperations

linux - 如何在 Linux shell 中对变量进行除法?

当我在我的shell中运行如下命令时,它会返回一个expr:non-integerargument错误。有人可以向我解释一下吗?$x=20$y=5$exprx/yexpr:non-integerargument 最佳答案 这些变量是shell变量。要将它们作为参数扩展到另一个程序(ieexpr),您需要使用$前缀:expr$x/$y它提示的原因是因为它认为你正在尝试对字母字符进行操作(ie非整数)如果您使用的是Bashshell,则可以使用表达式语法获得相同的结果:echo$((x/y))或者:z=$((x/y))echo$z