assert (n-1) == (2**k) * m # this does not hold true for large values of n for some reason
问题是它不适用于当我在python中评估2926172291557515 * 2**460时,我得到: 8711599454063889889401923055669626316647070894345982715097720460936366477064539266279767451213791729696559357170292404522606916263
我正在寻找在不损失精度的情况下将浮点数转换为双精度的最佳实践。到目前为止,我只发现一种正确的方法是将浮点数转换为字符串,将字符串转换为双精度。搜索Float API时,我偶然发现了这个方法doubleValue()。我原以为这是一个静态构造函数,它会在不降低精度的情况下从我的浮点数中返回一个双精度值,但以下代码的行为类似于强制转换: public static voidfl