Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何控制浮点计算中的小数?_Ruby On Rails_Ruby_Ruby On Rails 4_Console_Irb - Fatal编程技术网

Ruby on rails 如何控制浮点计算中的小数?

Ruby on rails 如何控制浮点计算中的小数?,ruby-on-rails,ruby,ruby-on-rails-4,console,irb,Ruby On Rails,Ruby,Ruby On Rails 4,Console,Irb,为了表示一个特定的价格(即20.30),我试图进行一些计算 我尝试过Float#round方法,但持有这些值的实例变量经过几次计算后,最终开始表示看起来像24.43418的数字 这只是我创建的将用户输入转换为百分比的方法 class Fixnum def percentage self.to_f / 100 end end @bankroll\u金额和@risk\u金额的计算值应为两个小数点 class Client def initialize(bankroll, unit)

为了表示一个特定的价格(即20.30),我试图进行一些计算

我尝试过Float#round方法,但持有这些值的实例变量经过几次计算后,最终开始表示看起来像24.43418的数字

这只是我创建的将用户输入转换为百分比的方法

class Fixnum
 def percentage
  self.to_f / 100
 end
end
@bankroll\u金额和@risk\u金额的计算值应为两个小数点

class Client

 def initialize(bankroll, unit)
  @bankroll_amount = bankroll.to_i.round(2)
  @unit_percentage = unit.to_i.percentage
  default_risk_amount.round(2)
  evaluate_default_unit!.round(2)
 end

 def default_risk_amount
  @risk_amount = @unit_percentage * @bankroll_amount
  @risk_amount.round(2)
 end

 # simulates what an updated bankroll looks like after a win based on clients "unit"  amount
 def risk_win
  @bankroll_amount = @bankroll_amount + @risk_amount
  @bankroll_amount.round(2)
  evaluate_default_unit!.round(2)
 end

 # simulates what a clients updated bankroll looks like after a loss based on clients "unit" amount
 def risk_loss
  @bankroll_amount = @bankroll_amount - @risk_amount
  evaluate_default_unit!
 end


 def evaluate_default_unit!
  @risk_amount = @unit_percentage * @bankroll_amount.round(2)
 end

end
我不确定这是否与我正在初始化这些实例变量有关,但是@risk_amount返回了正确的两位小数,但是当我返回对象时,里面的实例变量有运行小数

c = Client.new 2000, 1
<Client:0x000001018956a0 @bankroll_amount=2000.0, @unit_percentage=0.01, @risk_amount=20.0>

c.risk_win
=> 20.2
c=Client.new 2000,1
c、 冒险赢
=> 20.2
当我运行c.risk_赢得足够多时,它最终会返回

c
<Client:0x000001018956a0 @bankroll_amount=2440.3802, @unit_percentage=0.01, @risk_amount=24.4038>
c
用于将浮点数的显示格式设置为小数点后2位:

number_with_precision(@bankroll_amount.to_f, precision: 2)
rails控制台中的用法:

[1] pry(main)> include ActionView::Helpers::NumberHelper
=> Object
[2] pry(main)> number_with_precision(2440.3802, precision: 2)
=> "2440.38"
用于将浮点数的显示格式设置为小数点后2位:

number_with_precision(@bankroll_amount.to_f, precision: 2)
rails控制台中的用法:

[1] pry(main)> include ActionView::Helpers::NumberHelper
=> Object
[2] pry(main)> number_with_precision(2440.3802, precision: 2)
=> "2440.38"
用于将浮点数的显示格式设置为小数点后2位:

number_with_precision(@bankroll_amount.to_f, precision: 2)
rails控制台中的用法:

[1] pry(main)> include ActionView::Helpers::NumberHelper
=> Object
[2] pry(main)> number_with_precision(2440.3802, precision: 2)
=> "2440.38"
用于将浮点数的显示格式设置为小数点后2位:

number_with_precision(@bankroll_amount.to_f, precision: 2)
rails控制台中的用法:

[1] pry(main)> include ActionView::Helpers::NumberHelper
=> Object
[2] pry(main)> number_with_precision(2440.3802, precision: 2)
=> "2440.38"

这是只显示两个小数点的一种方法

price = 20.21340404
"%.2f" % price
# => 20.23
另请参见RAILS
number\u to\u currency
helpers
ActionView::helpers::NumberHelper


这是只显示两个小数点的一种方法

price = 20.21340404
"%.2f" % price
# => 20.23
另请参见RAILS
number\u to\u currency
helpers
ActionView::helpers::NumberHelper


这是只显示两个小数点的一种方法

price = 20.21340404
"%.2f" % price
# => 20.23
另请参见RAILS
number\u to\u currency
helpers
ActionView::helpers::NumberHelper


这是只显示两个小数点的一种方法

price = 20.21340404
"%.2f" % price
# => 20.23
另请参见RAILS
number\u to\u currency
helpers
ActionView::helpers::NumberHelper