.round(precision) Ruby メソッドが機能しない
概要
問題の詳細
私のルーチンは単純な一連の方程式であり、結果は小数点以下 4 桁の精度の float 要素の配列として返される必要があります。問題は、 .round(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 桁の精度を持つ 2 つの float 要素の配列。
私が得ているものは何ですか?小数精度を持たない 2 つの float 要素の配列。
私が知りたいことは何ですか?
解決策
あなたの問題は、round(4) が正しく動作しないことが原因ではありません。それはコードの一部であるためです。
x0t = x0.div(3) # Always return Integer
x0tf = x0t.round(4)
div の代わりに / を使用することをお勧めします。
x0t = x0 / 3 # return Float
x0tf = x0t.round(4)