0
我想用RubyInline(红宝石1.9.2)在C中添加一个红宝石数组的浮点值。预期产出应该是浮动价值。这里是我的代码:Rubyinline sum数组元素与浮点值
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 2012-01-14 09:47:00