• 没有读写磁盘的权限?

  • 一个新的 java 虚拟机?

  • 几本电子书的消息 at 2014年01月09日

    #23 楼 @andor_chen 这本书居然是在另一个地方销售现在才反应过来。。。

  • 几本电子书的消息 at 2014年01月09日

    为了支持译者我决定再去 leanpub 买本『Ruby on Rails 教程』(以前通过淘宝买的但是图灵貌似木有 epub 版本好悲催。。。

  • amazon 买的 actto 这个牌子的才 50 不到也挺好用的

  • 几本电子书的消息 at 2014年01月08日

    支持译者 PS:图灵的电子书没有 epub 格式的?

  • mysql2 装 0.3.11 版本的试试,我本地这个版本的能跑起来

  • #16 楼 @luikore 多谢吕大大的回答, 345.363631248474 是某第三方系统导出的 excel 里面的数据,因为要求数据要跟 excel 公式计算一致,所以这个细节完全就给忽视了。。。

  • update1:下文有技术层面的错误,为了保证当初原文的完整此帖不做修改,请继续看下面的回帖

    以下文字皆纪念某次通宵干到早上 5 点,在导入 excel 数据的时候发现的问题

    首先我们来进行试验,掏出你的计算器吧,我用的是貌似中小学生标配的计算器 casio fx-991ES PLUS,在里面 1)输入 345.363631248474*1024*1024,得到结果362140015 2)输入 449.179866790771*1024*1024,得到结果470999228 注意,OS X 10.9 系统自带的计算器连1/3*3都算不准的咱还是换一个计算器来玩吧,win xp 的计算器算这个算式都会得出正确答案

    为了验证是否正确,接着打开一个类似 excel 的东东——我用的是 WPS 表格 (8.1.0.3526) 1)在 A1单元格输入345.363631248474B1单元格输入 =A1*1024*1024,得到结果 362140015 2)在 A2单元格输入449.179866790771B2单元格输入 =A2*1024*1024,得到结果 470999228 以上证明咱没有手误之类的问题 注意,xubuntu 自带的 Gnumeric 电子表格计算是不准确的,Numbers 倒是能算正确,其他未知

    接下来看看 ruby 的表现如何

    require 'bigdecimal'
    require 'bigdecimal/util'
    
    result1 = BigDecimal.new("345.363631248474") * BigDecimal.new(1024*1024)
    
    puts "here is 345.363631248474 result"
    puts result1.to_s
    puts result1.to_i
    puts result1.to_f
    puts result1.to_digits
    
    puts '='*50
    
    result2 = BigDecimal.new("449.179866790771") * BigDecimal.new(1024*1024)
    
    puts "here is 449.179866790771 result"
    puts result2.to_s
    puts result2.to_i
    puts result2.to_f
    puts result2.to_digits
    

    得到的结果是

    here is 345.363631248474 result
    0.362140014999999873024E9
    362140014
    362140014.9999999
    362140014.999999873024
    ==================================================
    here is 449.179866790771 result
    0.470999227999999492096E9
    470999227
    470999227.99999946
    470999227.999999492096
    

    这段代码在版本 1.9.3 跟 2.1.0 运行的结果都一样。

    用 java 写上面的计算的话也是同样结果,有兴趣的可以试试,我就不上代码了。

    到这里基本可以看出计算浮点类型的差不多都是不准确了。

    但是,excel 的公式就是计算准确的么?

    我们接着在刚才那个 excel 文件里面做如下试验 1)在 C1单元格输入=B1&"",得到结果 362140015 2)在 C2单元格输入=B2&"",得到结果 470999227.999999

    把上一个单元格计算正确的数字变成文本类型的时候,居然就又不正确了,这到底是怎么回事,有谁能解释一下么?

    计算器计算正确的背后,它到底用了什么东西能让浮点数运算正确?

  • #9 楼 @lgn21st 你该换个计算器了,

  • #7 楼 @lgn21st 掏出计算器计算这个算式1/3*3

  • #5 楼 @QueXuQ 浮点数计算本来进度就不行,要想计算得准确一个就是 casio 计算器,另一个就是 excel 的计算公式,java 的 BigDecimal 都不行,其他语言未知

  • decimal 的精度一样会存在问题,还是 casio 计算器那样的算得准

  • Ruby 2.1 is out. at 2014年01月01日

    #67 楼 @jimmy2011 树莓派性能不行,换个杨梅派之类自带内存外存而且还是 A20 cpu 的来试试

  • 一下歪楼就歪到了讨论开发环境,感觉等下就会有人讨论那个版本的 Linux 来做开发的好了。。

  • devkit 是绝对要配置的,建议装个 1.9.3 的 32 位版本能减少一定量的折腾,上面那些劝换系统的基本都是近期没在 win 下安装的人的留言,可以无视

    还有就是,rails 4.1 带的 spring,这个是能在 win 下装的,只不过它不支持 win 系统罢了(ぶっちゃけお前らプロセスのコピーなんかほしいの?),而且它都还不支持 jruby 呢。

  • #15 楼 @jasl 在 java 里面的用 integer 存储金额的话,连 13 个 9 的那么一个金额都没法保存的,还是用 BigDecimal 的好

  • 我们这的新人培训之一就是,遇到金额的数据库字段类型一定要用 BigDecimal,因为它有方法直接进行“银行家舍入法”,并且要是进行其他的舍入方法也能很方便的实现

    PS:19wu 的里面我本来提了个金额用 BigDecimal 来储存的 issue,结果没被采用

  • 右键复制链接地址弄到迅雷下

  • 数据恢复了,虚惊一场 at 2013年12月26日

    看来大家都忘了去年大概也是这个时间段发生的事情了

  • sinatra 我也是用 pg,配合 sequel 也能实现 migrate 功能其实也挺好用的

  • Ruby 2.1 is out. at 2013年12月26日

    其实我想知道用 rvm、rbenv 之类安装了多版本的 ruby 能否共用一份 gem 包,可以的话如何实现

  • Ruby 2.1 is out. at 2013年12月26日

    重温 ko1 在 rubykaigi2013 上的演讲

  • 问一个比较傻的问题 at 2013年12月25日

    #6 楼 @shangrenzhidao 不是啊,某大型外包公司而已

  • #2 楼 @luikore 多谢吕大大回答(spring 能在 win 下安装但是没法使用,orz

  • 问一个比较傻的问题 at 2013年12月25日

    我还做修电脑、安装系统、进行信息安全检查等工作

  • 在 rails 4.1 版本中加上的 spring 这个 gem 不知道是不是也是实现同样的功能

  • Merry Christmas 皆さん at 2013年12月25日

    クリスマスといえば、ねねさんと一緒に過ごししかありません。。。