为什么转换从不使用convert(type, x)
函数从浮点到整数?
当我使用int64(1.5)
时,它可以正常返回2,但是当我尝试执行convert(Int64, 1.5)
时,它会引发InexactError。幕后发生了什么?
documentation并没有取悦我。
答案 0 :(得分:3)
convert
以这种方式工作的原因是它是一个非常通用的转换函数,由许多其他函数隐式调用。因此,它被设计为或多或少的无损转换,以避免任何令人不快的意外。
在Julia 0.3中,您可以使用iround
,ifloor
或iceil
以指定方式将浮点数舍入为整数。在Julia 0.4中,您应该将请求的结果类型作为round
,floor
或ceil
的初始参数。