5.4/0.15应该就等于36,结果算出来是比36大的数,不懂发生了什么
实际使用发现问题,排查发现的
这个问题比较难解释简单理解是这样的:A%B理论上可以得到一个整数,但是基于计算机的运算机制,他在背后其实是得到一个小数。你可以认为是36.000000000000000000000001,或者是35.99999999999999999.因此,基于round的c端口就算算出比36.0000000000000000001大一点的一个整数,就是37。
谢谢老师,我的理解可能是类似Python中浮点数的计算,但import decimal可以解决,
GH中还有没有解决办法?
这个 ceiling(5.4/0.15)对于建筑专业来说,就是计算楼梯踏步数,向上取整满足规范
一般的整除数都还是正确的,就个别出问题,隐藏性还是很高的
另外测试了下其它的数字,只能识别一些无限循环和自带特定的值,其余无限不循环的则不行
谢谢鹿神,把数据转化成整型是个思路,相当于都先*10小数点位数次方。
(我最开始就用的毫米单位,后面认为还是米好用)
感觉rhino是偏应用的一个软件,达到一定精度即可,不是用来精确数学计算的,目前没有直接的办法
后面说的加上round,可能不适合数字的修改,比如5.45的层高,是需要得到37的,先加上round就没有celing的意义了
5.45/0.15=36.3333333
round后=36.3333
ceiling后=37
你再好好理解一下round函数,做建筑的,得有点严谨态度,搞清之前,可别轻易下定论。
不好意思,鹿神,可能我的例子5.45层高不合理,因为没注意到round里面有个4位小数的限定。
先入为主了Dixon老师说的比如36.0000000001
恰好也说明,适当的精度n下,round(x,n)还是够用的
那么整个逻辑就又通了,面向应用,适当精度
再次感谢,学到了
对楼梯踏步这个层面,我还是建议你使用毫米作为单位。
尽可能不要出现用米做单位,小数点后面3-4位表达毫米的操作
好的,我再想想工作流