草庐IT

GL_HALF_FLOAT

全部标签

ruby - 如何将分数转换为在 ruby​​ 中 float

我有一个字符串"1/16"我想将它转换为float并乘以45。但是,我没有得到想要的结果。我在script/console中尝试>>"1/16".to_f=>1.0>>"1/16".to_f*45=>45.0如何获得2.81的预期结果大图:我有一个这样的下拉列表:每当用户选择oz值时,我想将它乘以45我也是这样的:first,*rest=params[:volume].to_s.split(//)ifrest.first=="oz"@indprodprice=@prods.orig_price.to_i*first.to_f*28.3495else@indprodprice=@prod

ruby-on-rails - 如何计算Float中的小数位数?

我正在使用Ruby1.8.7和Rails2.3.5。如果我有一个像12.525这样的float,如何获取小数点后的位数?在这种情况下,我希望得到“3”。 最佳答案 我猜是这样的:n=12.525n.to_s.split('.').last.size 关于ruby-on-rails-如何计算Float中的小数位数?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8597766/

从 float 转换的 Ruby Time 对象不等于原始 Time 对象

time=Time.nowfvalue=time.to_freturntime==Time.at(fvalue)这里有人可以解释为什么上面的表达式返回false吗?如何从与原始时间变量匹配的float创建新的时间对象?谢谢 最佳答案 IEEE754double(由to_f返回)不够准确,无法表示确切时间。t1=Time.nowf1=t1.to_ft2=Time.at(f1)#theylookthesamet1.inspect#=>'2013-09-0923:46:08+0200't2.inspect#=>'2013-09-0923:

c - 奇怪的 "half to even"不同语言的舍入

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。GNUbash,版本4.2.24:$>printf"%.0f,%.0f\n"48.549.548,50ruby1.8.7>printf("%.0f,%.0f\n",48.5,49.5)48,50Perl5.12.4$>perl-e'printf("%.0f,%.0f\n",48.5,49.5)'48,50海湾合作委员会4.5.3:>printf("%.0

ruby - 在 Ruby 中将 float 拆分为整数和小数

如果我有一个像3.75这样的float,我怎样才能将它分成整数3和float0.75?我是否必须将float转换为字符串,然后用“.”拆分字符串,然后再将部分转换为整数和float,或者是否有更优雅或“正确”的方法来执行此操作? 最佳答案 为此,您可以使用带参数1的Numeric#divmod:Returnsanarraycontainingthequotientandmodulusobtainedbydividingnumbynumeric.a.divmod1=>[3,0.75]如果你想得到精确的值,BigDecimal也可以使用

ruby - 如何有效地清除 Ruby 的负零 float ?

在Ruby中,0.0*-1==-0.0。我有一个应用程序,我将一堆Float对象与-1相乘,但我不喜欢-0.0输出,因为它令人困惑。是否有一种聪明的方法可以使Float#to_s输出0.0而不是-0.0?我完全可以通过某种清理器/辅助方法运行每个Float对象,但以下只会让我更加困惑:defclean_output(amount)ifamount.zero?0.0elseamountendend更新:为了更准确地说明我在寻找什么,我想要一个可以在一大堆float上运行的解决方案,其中一些是负数,一些是正数。负数应该保持负数,除非它们是负零,即-0.0。例子:clean_output(-

ruby-on-rails - Ruby BigDecimal 健全性检查( float newb)

我的理解是否正确,即使用RubyBigDecimal类型(即使具有不同的精度和标度长度)应该准确计算还是我应该预测浮点恶作剧?我在Rails应用程序中的所有值都是BigDecimal类型,我看到了一些错误(它们确实有不同的小数长度),希望这只是我的方法而不是我的对象类型。 最佳答案 使用浮点运算时有两个常见的陷阱。第一个问题是Rubyfloat具有固定的精度。在实践中,这要么是1)对您来说没问题,要么2)灾难性的,或者3)介于两者之间。请考虑以下事项:#float1.0e+25-9999999999999999900000000.0

ruby - 截断 float 而不向上舍入

我有一个float,我想截断到3个位置,但我不想四舍五入。例如,将1.0155555555555555转换为1.015(而不是1.016)。我将如何在Ruby中执行此操作? 最佳答案 您还可以转换为BigDecimal,然后对其调用truncate。1.237.to_d.truncate(2).to_f#willreturn1.23 关于ruby-截断float而不向上舍入,我们在StackOverflow上找到一个类似的问题: https://stackov

ruby - 将 ruby float 向上或向下舍入到最接近的 0.05

我得到像这样的数字2.363636363636364.5675631.23456646544846510.5857447736我如何让Ruby将这些数字向上(或向下)舍入到最接近的0.05? 最佳答案 [2.36363636363636,4.567563,1.23456646544846,10.5857447736].mapdo|x|(x*20).round/20.0end#=>[2.35,4.55,1.25,10.6] 关于ruby-将rubyfloat向上或向下舍入到最接近的0.05

如果整数,则 Ruby 将 float 舍入为 int

在ruby​​中,如果float是整数,我想将其转换为int。例如a=1.0b=2.5a.to_int_if_whole#=>1b.to_int_if_whole#=>2.5基本上,我试图避免在任何没有小数的数字上显示“.0”。我正在寻找一种优雅的(或内置的)方式来做defto_int_if_whole(float)(float%1==0)?float.to_i:floatend 最佳答案 一个简单的方法是:classFloatdefprettifyto_i==self?to_i:selfendend那是因为:irb>1.0==1=