0
Ruby配列のfloat値をRubyInline(ruby 1.9.2)でCに追加しようとしています。期待される出力はfloat値でなければなりません。ここに私のコードは次のとおりです。コンソールでこれを実行している浮動小数点値を持つRubyinlineサム配列要素
require 'inline'
class ArrayMath
inline :C do |builder|
builder.c "
VALUE sum(VALUE arr){
int size = RARRAY_LEN(arr);
VALUE *c_arr = RARRAY_PTR(arr);
int i, x;
float sum = 0.0;
for (i=0; i<size; i++)
{
x = NUM2DBL(c_arr[i]);
sum += x;
}
return(rb_float_new(sum));
}"
end
end
ArrayMath.new.sum([1,2.7])
出力3.0 明らかに予想される結果は、3.7
私はこれを見落として信じることができません。ベッドに行く時間は私が推測する。ありがとうございました – vald