草庐IT

c++ - 将 float 转换为 int,还是将 int 转换为 float?

全部标签

c - 如何处理 ruby​​ ffi gem 中的 ruby​​ 数组?

我想使用ruby​​ffigem调用一个c函数,该函数将一个数组作为输入变量,输出是一个数组。也就是说,c函数看起来像:double*my_function(doublearray[],intsize)我创建了ruby​​绑定(bind):moduleMyModuleextendFFI::Libraryffi_lib'c'ffi_lib'my_c_lib'attach_function:my_function,[:pointer,int],:pointer我想用ruby​​代码调用:result_array=MyModule.my_function([4,6,4],3)我该怎么做?

ruby - 将字符串转换为实例变量

我有一个数组["agreement","user","client"]。有什么方法可以将其项转换为对象@agreement、@user、@client? 最佳答案 ["agreement","user","client"].map{|k|instance_variable_get("@#{k}")} 关于ruby-将字符串转换为实例变量,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

ruby-on-rails - 在 Rails 4 中组织外部 API 调用 - 模块还是类?

我正在创建一个Rails应用程序,它将使用相当多的外部API,例如SalesForce、FolderGrid(如Dropbox)等,它们都会同步到我的数据库。我从来没有使用过外部api调用,所以我创建了一些基本的Ruby脚本和分散的方法来测试对这些资源的调用。现在我想用我的完整Rails应用程序来实现它们。到目前为止,我首先在我的/lib文件夹中创建一个目录来保存api调用模块/类。/lib/apis/foldergrid.rb现在我不确定组织代码的最佳方法是什么。在我的独立Ruby脚本中,我有用于身份验证、创建文件夹、审核文件、下载文件等的方法。模块中应该包含什么?我什至需要一个模块

c - 我如何在 Ruby 的 C 扩展 API 上检索 'standalone' 符号

我想从C函数返回多个值,恕我直言,散列是一个不错的选择。我首先使用rb_intern('A_KEY')创建key,但扩展崩溃了。现在,我正在使用rb_str_new2,但我更喜欢符号。如何创建一个新符号,并在不引用类或方法的情况下使用它? 最佳答案 您需要使用ID2SYM宏将从rb_intern获得的标识符转换为ruby​​符号。尝试改变rb_intern('A_KEY')到ID2SYM(rb_intern('A_KEY')) 关于c-我如何在Ruby的C扩展API上检索'standal

ruby - 如何强制 Float 在不使用科学记数法的情况下以完全精确的方式显示,而不是作为字符串显示?

在Ruby中,如何在没有科学记数法的情况下强制显示所有重要位置/完全精确的float?目前我将BigDecimal转换为Float,BigDecimal(0.000000001453).to_f,但这会产生1.453e-09的结果float。如果我执行类似"%14.12f"%BigDecimal("0.000000001453").to_f的操作,我会得到一个字符串。然而,在这种情况下,字符串作为输出是NotAcceptable,因为我需要它作为没有科学记数法的实际数字float。---编辑---好吧,让我在这里提供一些背景信息,这可能需要更改我原来的问题。我正在尝试使用Highsto

ruby-on-rails - Ruby:在转换数组中的对象后传递键/值

给定数据:data=[{"id":14,"sort":1,"content":"9",foo:"2022"},{"id":14,"sort":4,"content":"5",foo:"2022"},{"id":14,"sort":2,"content":"1",foo:"2022"},{"id":14,"sort":3,"content":"0",foo:"2022"},{"id":15,"sort":4,"content":"4",foo:"2888"},{"id":15,"sort":2,"content":"1",foo:"2888"},{"id":15,"sort":1,"co

ruby - 使用默认值将 Ruby 字符串转换为整数

是否有一个Ruby方法接受一个字符串和一个默认值,如果字符串表示整数则将其转换为整数,否则返回默认值?更新我认为以下答案更可取:classStringdeftry_to_i(default=nil)/^\d+$/===self?to_i:defaultendend以下是您应该避免异常的证据:>deftime;t=Time.now;yield;Time.now-tend>time{1000000.times{|i|('_'1.3491532>time{1000000.times{|i|Integer.new('_'27.190596426 最佳答案

ruby - 从 float 中删除科学记数法

我目前正在将两个float相乘:0.0004*0.0000000000012=4.8e-16如何获得正常格式的结果,即没有科学记数法,例如0.0000000000324,然后将其四舍五入为5个数字。 最佳答案 您可以使用stringformatting.a=0.0004*0.0000000000012#=>4.8e-16'%.5f'%a#=>"0.00000"pi=Math::PI#=>3.141592653589793'%.5f'%pi#=>"3.14159" 关于ruby-从floa

ruby - 如何将 float 格式化为一定数量的小数和整数?

我正在尝试将Ruby中的float格式化为四位数字,包括小数点。例如:1=>01.002.4=>02.401.4455=>01.45现在,我正在尝试按如下方式格式化float:str_result="%.2f"%result这成功地将小数位数限制为两位。我还知道:str_result="%2d"%result它成功地将1转换为01,但丢失了小数位。我试着像这样组合这些:str_result="%2.2f"%result没有明显效果。它与%.2f具有相同的结果。有没有办法强制Ruby将字符串格式化为这种四位数格式? 最佳答案 您可以使

ruby-on-rails - Ruby float 学 - Sum Calc 中的精度问题

大家早上好我在float学方面遇到了一些问题,完全迷失在“.to_f”、“*100”和“.0”中!我希望有人能帮助我解决我的具体问题,并准确解释他们的解决方案为何有效,以便我下次理解这一点。我的程序需要做两件事:对一组小数求和,确定它们的和是否正好为1.0确定1.0与数字总和之间的差值-将变量的值设置为使总和等于1.0的精确差值。例如:[0.28,0.55,0.17]->总和应为1.0,但我一直得到1.xxxxxx。我正在以下列方式实现总和:sum=array.inject(0.0){|sum,x|sum+(x*100)}/100我需要此功能的原因是我正在读取一组来自excel的小数。