.round(precision)Ruby方法不起作用

uqjltbpv  于 9个月前  发布在  Ruby
关注(0)|答案(1)|浏览(102)

问题详情

我的例程是一组简单的方程,结果必须以浮点数元素数组的形式产生结果,精度为小数点后4位。问题是.round(4)方法不起作用。

我努力

1.二手.圆形(4)
1.使用.to_f(4)
代码如下:

def bar_triang(p1,p2,p3)
  #your code here
  
  bary=[]
  
  x0= [p1[0],p2[0],p3[0]].sum 
  x0t= x0.div(3)
  x0tf = x0t.round(4)
  
  bary=bary.push(x0tf)
  
  y0 = [p1[1],p2[1],p3[1]].sum
  y0t =y0.div(3)
  y0tf = y0t.round(4)
  
  bary=bary.push(y0tf)
  
  p bary  
  
end

字符串

**注意:**例程接受以下形状的数组[p1,p2,p3],其中p1到p3是坐标[x,y]。[p1,p2,p3]是数组的数组。

我期待的是什么?一个两个浮点数元素的数组,精度为4位小数。
我得到了什么?一个两个浮点数元素的数组,没有小数精度。

我想知道什么

1.为什么.round(4)方法在我的代码上下文中不起作用?
1.如何在代码的上下文中使用.round(4)来使其正常工作?

lvjbypge

lvjbypge1#

你的问题不是因为round(4)不能正常工作。而是因为代码的一部分:

x0t = x0.div(3) # Always return Integer
x0tf = x0t.round(4)

字符串
我建议使用/而不是div

x0t = x0 / 3 # return Float
 x0tf = x0t.round(4)

相关问题