3

Ruby noob,刚刚安装并安装了 RubyMotion,创建了我的第一个程序,但我无法让 Time(示例)应用程序正常工作。

每当我尝试使用 sprint 或其他形式(抱歉不知道名称)来格式化字符串时,我都会得到我的格式字符串。

即(在我的应用程序在模拟器中运行时从控制台)

Build ./build/iPhoneSimulator-5.1-Development
Simulate ./build/iPhoneSimulator-5.1-Development/Timer.app
(main)>> @time = 0.1
=> 0.0999999940395355
(main)>> string = sprintf("%.1f", @time)
=> "%.1f"
(main)>> string
=> "%.1f"
(main)>> "%.1f" % @time 
=> "%.1f"
(main)>> 

在模拟器中的实际应用程序中的结果相同。

我的 Mac 上确实安装了默认的 ruby​​,但是如果我尝试运行测试 ruby​​ 文件(打印“%05d”% 123),我会得到预期的结果。

/usr/bin/ruby -v 
ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0]
/Library/RubyMotion/bin/ruby -v
MacRuby 0.12 (ruby 1.9.2) [universal-darwin11.0, i386]

在 Lion 10.7.3 上运行,任何建议或想法表示赞赏。

谢谢。

4

1 回答 1

1

截至 2012 年 5 月 9 日,此问题已得到修复。确保您使用的是 RubyMotion 1.3 (run sudo motion update) 并且字符串格式将再次起作用。

2012 年5 月 8 日更新:确认错误,应该在今晚或明天修复。

根据我上面的评论,这肯定有一个错误。一个丑陋的黑客让这个工作可能是这样的(因为%d仍然可以正常工作sprintf):

@time = 0.1
sprintf("%d", (@time * 10).round).insert(-2, '.')
于 2012-05-08T14:48:31.377 回答