0
Я пытаюсь добавить значения float массива ruby в C с RubyInline (ruby 1.9.2). Ожидаемый результат должен быть значением поплавка. Вот мой код:Элементы массива сумм 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