• 526.56 转换成二进制是:
    1000001110.1000111101011100001010001111010111000010...

    小数部分 10001111010111000010 无限循环

    因为 32 位 float 存不了那么多,只能存到小数点后 14 位,所以最后只有这个二进制保存下来: 1000001110.10001111010111

    小数部分就成了 0.10001111010111,也就是 0.55999755859375

    因此 526.56.floor(2)
    等价于
    526.55999755859375.floor(2)

    结果 526.55 没毛病

    为什么只能存到小数点后 14 位呢?

    526.56 也就是 1000001110.1000111101011100001010001111010111000010...
    用二进制的科学记数法表示为 (小数点左移 9 位):
    (2^9) * 1.0000011101000111101011100001010001111010111000010...

    float 存储的时候第一位是一个符号位,接下来 8 个是指数位,也就是 9,因为有效数的整数部分只能为 1,就不存了,只剩下 23 个存有效数 1 后面的小数部分,原整数 526 的信息除 1 以外是 000001110, 占了 9 位,只剩下 23 - 9 = 14 位存小数部分:

    符号 1 bit 指数 8 bits 整数信息减去 1 有 9 bits 小数部分 剩下 14 bits
    0 10001000 000001110 10001111010111

    指数不是 9 吗,这是却是 10001000?因为指数有正负,一共 8 bits, 0~255,正负各 256/2=128,所以 指数 9 表示为 9 + 127 = 136,也就是 10001000

    最后结果: 526.56 的浮点数是:01000100 00000011 10100011 11010111

  • 请问用 Rails 遇到性能瓶颈了吗?如果只是学习还是值得鼓励的。

  • 谨防比特币和区块链骗局 at 2018年01月25日

    👍

  • 其实每个开发工程师都应该懂点在线培训技术

    做工程师根本不赚钱,做培训就好多了,蓝翔还要几台挖掘机才能上课,搞在线培训的只要有麦克风就好了!

  • Rails 中背景图片没显示 at 2018年01月19日
  • 首先你的查询没有分页,其次这种实时要求不高的东西一定要做 Cache。

    如果你一定想知道结果,可以打开 Development 模式下的 log,你可以用 log 里的 SQL 语句直接运行一下,检测资源占用,看哪种合适。

  • 开公司后就简单多了,个人的话,就算了吧

  • 已经不写 blog 了,根本没时间,记笔记就好了。

  • 笑而不语 at 2017年11月10日

    楼主,那个笔记本要再靠近头部一点,这样是会掉下来的。

    这些个图是什么意思?

  • Emacs 闲谈 (一) 引言 at 2017年11月08日

    一直想学一下 Emacs,真是没时间。要做的事太多了,优先级都比它高。

    一块屏幕分那么多窗口我感觉太憋屈了,在公司或在家里我都是三块大屏幕。

    服务器上我用 Vim,平时不会用,那些所谓手不离键盘的高效率对我没那么重要,程序员的瓶颈不在打字速度上,除了打字外,构思,计划,调试,测试占了很多时间。

    从早写到晚的程序员应该还是有的,不过我没见过。

  • Ruby 爬虫框架 at 2017年11月06日

    有,开撸吧,给你 Star,

    机器学习 输给 python 也就罢了,爬虫无论如何不能输给 python 啊~

  • 36kr 是用 Homeland? at 2017年11月05日

    是的,大清已亡 😀

  • [招生] 零基础 Ruby 入门班 at 2017年10月30日

    在这个人工智能的风口,还是学习 Python 吧

  • 谢谢,没研究过。我用 pow 配合 anvil 感觉还挺好用的。

    https://anvilformac.com/

    我试了一下改 dns,第一下还是有点慢,然后就感觉到 turbolinks 的威力了,根本没有刷新网页的感觉。

  • 如何从 MongoDB 迁移到 MySQL at 2017年10月24日

    谢谢楼主!这文章让我高兴了好久,2012 年也准备用 MongoDB 的,看了你的总结,我好像少干了一个月的活。

    还有 2002 年的 Delphi
    2009 年的比特币
    2012 到 2013 年的 Rubymotion

    如何才能押对宝?我需要多啦 A 梦!

  • @tenderlove: Time to learn Elixir! at 2017年10月18日

    要看时间,精力,目的,有时间可以先玩玩,期待大牛填坑先。

    就 Web 来看,Elixir + phoenix 的轮子相比 Rails 还是少,无法想像如何把目前的项目转到 phoenix 上。

    这不是用 iPhone,晚点使用相信会减少很多痛苦。

  • 是时候面对事实了,

    Rails 的确在下降,
    Ruby 生态不如 Python,
    Java 一直很坚挺,
    Js 不好用,但一直在涨粉,
    go 语言跟比特币一样,在中国异常兴旺
    C++ 值得作为一门傍身的静态强类型语言技能
    Delphi/O-Pascal 还没死,估计一时半会儿也死不了了

  • 能不能 Q 外建立个完整版只读镜像?

  • 声音的话,可以用 voip 两头连(call back)的方式,脱离互联网,直接用电话网,几个学员就用几部手机。

    费用极低,美国到中国 $ 0.012/min, 因为两头连,费用 x 2。

    http://www.voipstunt.com 这是其中一个网站,还有很多类似的,都是一个公司,选个费用最低的。

  • RubyConf China 2017 视频 at 2017年09月25日

    靠谱男 👍

  • 我开始用上了,后来撤销了,用户如果手机访问网站,登录的时候还要换到 Google 两步认证 APP, 然后再回来填,太麻烦。如果不是很重要的场景,没必要这么安全。

  • 看场景,一般建议用其它现成的,插件丰富的产品。 不要折腾。

  • 传销~

    先做个记号

  • 随便找层楼,点个赞就可以了。

    留言第一次跳到首页,不成功,第二次才 OK

  • 楼主,在没有上下级关系的情况下,只能要求自己,不能要求别人。

    开源共享帮助别人这事,当事人有权利,他想做就做了。如果你也这样做,我给你点赞~

    不能你说我需要帮忙,要求大家说,来帮我啊,实现你的价值啊,延展你的生命啊。

  • TextMate 是不是淘汰了? at 2017年06月28日

    对 RubyMine 付费或可破功