Ruby Rails显示计算错误 [8]撬动(#)>self[未偿总额]| | 0/self.dd|u金额 => 10100.0 [9] 撬(#)>self[:总计未付金额]| 0 => 10100.0 [10] 撬动(#)>self.dd_金额 => 900.0 [11] pry(#)>self[:未偿总额].to|i | 0/self.dd|u amount.to|i => 10100
self[:total|unforeign].to|i|0/self.dd|u amount.to|i应返回11,而不是第一个属性的值为10100 我正试图在pry会话中调试这个Ruby Rails显示计算错误 [8]撬动(#)>self[未偿总额]| | 0/self.dd|u金额 => 10100.0 [9] 撬(#)>self[:总计未付金额]| 0 => 10100.0 [10] 撬动(#)>self.dd_金额 => 900.0 [11] pry(#)>self[:未偿总额].to|i | 0/self.dd|u amount.to|i => 10100,ruby,ruby-on-rails-4,pry-rails,Ruby,Ruby On Rails 4,Pry Rails,self[:total|unforeign].to|i|0/self.dd|u amount.to|i应返回11,而不是第一个属性的值为10100 我正试图在pry会话中调试这个 当代码运行时,它确实认为值为10100,这是错误的。 < P>或OR运算符( < < /代码>)具有比除法运算符低的优先级( /< /代码>)。 Ruby将您的最后一行解释为: [8] pry(#<Plan>)> self[:total_outstanding]||0 / self.dd_amount
当代码运行时,它确实认为值为10100,这是错误的。
< P>或OR运算符(<代码> < < /代码>)具有比除法运算符低的优先级(<代码> /< /代码>)。 Ruby将您的最后一行解释为:[8] pry(#<Plan>)> self[:total_outstanding]||0 / self.dd_amount
=> 10100.0
[9] pry(#<Plan>)> self[:total_outstanding]||0
=> 10100.0
[10] pry(#<Plan>)> self.dd_amount
=> 900.0
[11] pry(#<Plan>)> self[:total_outstanding].to_i||0/self.dd_amount.to_i
=> 10100
这只会将self[:total_suspended]返回到_i
,因为这是一个真实的值
组self[:total|u杰出]。将| i | 0
像这样组合在一起:
self[:total_outstanding].to_i || (0/self.dd_amount.to_i)
OR运算符(|
)的优先级低于除法运算符(/
)
Ruby将您的最后一行解释为:
[8] pry(#<Plan>)> self[:total_outstanding]||0 / self.dd_amount
=> 10100.0
[9] pry(#<Plan>)> self[:total_outstanding]||0
=> 10100.0
[10] pry(#<Plan>)> self.dd_amount
=> 900.0
[11] pry(#<Plan>)> self[:total_outstanding].to_i||0/self.dd_amount.to_i
=> 10100
这只会将self[:total_suspended]返回到_i
,因为这是一个真实的值
组self[:total|u杰出]。将| i | 0
像这样组合在一起:
self[:total_outstanding].to_i || (0/self.dd_amount.to_i)
运算符
|
的优先级低于运算符/
,而不是更高。看吧,但是八月的解决方案是有效的。。现在看起来更明显了。但是@user4235730谢谢你分享这个链接。。非常有用..运算符|
的优先级低于运算符/
,而不是更高。看吧,但是八月的解决方案是有效的。。现在看起来更明显了。但是@user4235730谢谢你分享这个链接。。很有帮助。。