草庐IT

算术题

全部标签

swift - 是否有等效于算术运算符的可选链接?

我添加了两个可选号码。现在它看起来像这样:ifleta=optionalA{ifletb=optionalB{returna+b}}returnnil对于方法,有更方便的可选链接语法,如optionalA.?method语法。如果任一侧为nil,算术运算符是否会返回nil? 最佳答案 可以创建一个运算符+?来执行以下操作:infixfunc+?(a:Int?,b:Int?)->Int?{ifaa=a{ifbb=b{returnaa+bb}}returnnil}但我想知道是否有另一种内置方法可以做到这一点。

java - 使用泛型类执行基本算术运算

我想对包装类型(如Integer、Float、Double...(不包括BigDecimal和BigInteger)。我尝试使用泛型类执行如下操作(用于添加)。publicfinalclassGenericClass{publicEadd(Ex,Ey){returnx+y;//Compile-timeerror}}它发出一个编译时错误,operator+cannotbeappliedtoE,E有没有办法使用这样的通用版本来实现这样的操作? 最佳答案 不,没有办法做到这一点,否则它会内置到Java中。类型系统不够强大,无法表达这种事情

java - int 的基本算术运算 - Java

我最近注意到Java关于Java中基本算术运算的特性。用下面的代码bytea=3;byteb=4;bytec=a*b;我收到“类型不匹配”编译错误...Java中的基本算术运算(+、-、*、/)只对primitive进行int和高阶数据类型(long、double等),而byte和short首先转换为int然后计算? 最佳答案 对byte、char和short的操作被扩展为int,除非编译器可以确定该值是在范围内。finalbytea=3,b=4;bytec=a*b;//compilesfinalbytea=3,b=40;bytec

java - 对持有整数值的 double 变量的算术运算是否准确?

假设我有两个整数值存储在double变量中,e。例如:doublex=100.0;doubley=7.0;我可以安全地假设对这两个double变量产生整数结果的任何算术运算都将返回一个精确的整数值(作为double)吗?也就是说,例如所有:x+y=107.0x-y=93.0x*y=700.0返回准确的整数值,还是会有一些精度问题?比如x*y是699.99995左右?一般问题:对两个包含整数值的double变量的任何算术运算都会产生整数结果,是否会返回精确的整数值(作为double)?我是在Java上下文中问这个问题,但我认为它在其他语言中也是类似的。 最佳答

java - 什么会导致 float 在没有算术变化的情况下突然偏离 1 位

在进行较大的重构更改时,未修改任何类型的算法,我设法以某种方式更改了我的程序(基于代理的模拟系统)的输出。输出中的各种数字现在相差极小。检查表明,这些数字的最低有效位相差1位。例如,24.198110084326416将变为24.19811008432642。每个数字的浮点表示为:24.198110084326416=010000000011100000110010101101110101011110101101001100001001010024.19811008432642=010000000011100000110010101101110101011110101101001100

python - 有没有办法自动生成有效的算术表达式?

我目前正在尝试创建一个Python脚本,该脚本将自动生成有效的以空格分隔的算术表达式。但是,我得到的示例输出如下所示:(32-42/95+24()(53)+)21虽然空括号对我来说完全没问题,但我不能在计算中使用这个自动生成的表达式,因为24和53之间没有运算符,最后21之前的+没有第二个参数。我想知道的是,有没有办法使用Pythonic解决方案来解释/修复这些错误?(在任何人指出之前,我将第一个承认我在下面发布的代码可能是我推出并符合的最糟糕的代码……好吧,Python的核心原则很少。)importrandomparentheses=['(',')']ops=['+','-','*'

python - 在 python 中重载增强算术赋值

我是Python的新手,如果这是一个愚蠢的问题,请提前致歉。对于一个赋值,我需要为类myInt重载增强算术赋值(+=、-=、/=、*=、**=、%=)。我查看了Python文档,这是我想出的:def__iadd__(self,other):ifisinstance(other,myInt):self.a+=other.aeliftype(other)==int:self.a+=otherelse:raiseException("invalidargument")self.a和other.a指的是每个类实例中存储的int。我尝试按如下方式对此进行测试,但每次我得到“无”而不是预期值5:c

python - 重载 Python 中的所有算术运算符

假设我构建了一个基本上表示数字和一些花哨的东西的类。该类的实例在任何算术/数学运算中的行为都应该像数字一样。我可以重载那个类中的所有数字运算符,但是没有更短的解决方案吗?这个类基本上是这样的:classMyFancyNumber:def__init__(self,num,info):self.num=num#theactualnumberself.info=info#somemoreinfo,orotherdatadefdoFancyStuff(self):#doessomethingfancydef__add__(self,other):returnself.num+other#sa

python - 在 YAML 中执行算术运算?

有时我必须在配置文件中指定时间(以秒为单位),而且写精确的秒数非常烦人-相反我想执行算术以便我可以使用:some_time:1*24*60*60而不是精确的:some_time:86400不幸的是,在使用这一行时:some_time:1*24*60*60,它会将配置行视为一个字符串。当然,我可以使用-eval(config['some_time'])但我想知道是否可以在YAML中执行算术运算? 最佳答案 我认为没有。至少不符合规范(http://yaml.org/spec/1.2/spec.html)。人们向yaml添加非官方标签(

python - 算术表达式的优化 - 这种技术叫什么?

与friend的讨论导致了以下认识:>>>importdis>>>i=lambdan:n*24*60*60>>>dis.dis(i)10LOAD_FAST0(n)3LOAD_CONST1(24)6BINARY_MULTIPLY7LOAD_CONST2(60)10BINARY_MULTIPLY11LOAD_CONST2(60)14BINARY_MULTIPLY15RETURN_VALUE>>>k=lambdan:24*60*60*n>>>dis.dis(k)10LOAD_CONST4(86400)3LOAD_FAST0(n)6BINARY_MULTIPLY7RETURN_VALUE第二个