Ruby noob,刚刚安装并安装了RubyMotion,创建了我的第一个程序,我无法让Time(sample)应用程序运行。
每当我尝试使用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上运行,任何建议或想法都会受到赞赏。
感谢。
答案 0 :(得分:1)
截至2012年5月9日,已经修复了这个问题。确保你使用RubyMotion 1.3(运行sudo motion update
)并且字符串格式化将再次起作用。
2012年5月8日更新:Confirmed bug,应在今晚或明天修复。
根据我上面的评论,肯定有一个错误。一个丑陋的黑客来实现这个工作可能是这样的(因为%d
仍然适用于sprintf
):
@time = 0.1
sprintf("%d", (@time * 10).round).insert(-2, '.')