28得票3回答
Java中的double到int的转换是如何工作的?

我刚接触Java,想知道如何将double转换为int?我知道将long转换为int很简单,只需取低32位即可,但是将64位的double转换为32位的int该怎么做呢?将Double-precision浮点格式(Mantissa)中的这64位以二进制形式表示,那它在内部是如何转换成int的呢?

8得票2回答
将尾数和指数转换为双精度类型

在性能非常高的应用程序中,我们发现CPU可以计算长算术比double快得多。然而,在我们的系统中,我们确定我们从不需要超过9个小数位的精度。因此,我们使用long来进行所有浮点运算,以9位精度为准。 但是,在系统的某些部分中,由于可读性更强,使用doubles更加方便。因此,我们需要将假定有...

7得票5回答
NSDecimalNumber的小数部分

我正在使用NSDecimalNumber来存储货币的值。我想编写一个名为“cents”的方法,该方法返回数字的小数部分作为NSString,如果数字<10,则带有前导0。基本上: NSDecimalNumber *n = [[NSDecimalNumber alloc] initWit...

7得票1回答
GCC在不同的优化级别下处理浮点数比较的方式不同

我有一些简单的代码,用于比较两个浮点值,以说明我在使用GCC优化时遇到的问题,并希望有人能帮助我弄清楚为什么在某些可重复的情况下它产生的输出不同。首先,我知道使用“==”来比较浮点值是不好的,因为你可能会偏离尾数中的一些非常小的量,但在我的例子中并非如此。我的问题是输出会根据两个因素而改变:1...