Swift 获取超过15个小数位

Swift 获取超过15个小数位,swift,cocoa-touch,double,Swift,Cocoa Touch,Double,这是一个非常简单的问题。在我看来,双倍数字的上限约为15位小数。例如,以以下代码段为例: var test : Double = 3.141592653589793238462643383279 斯威夫特游乐场显示该双精度值为3.141592653589793。有没有任何可能的方法可以让我在一个双精度表中获得超过15个小数位?从苹果的文档来看,这似乎是可能的: Double的精度至少为15位小数,而 浮点精度可低至6位小数。这个 要使用的适当浮点类型取决于性质和范围 代码中需要使用的值的集合。

这是一个非常简单的问题。在我看来,双倍数字的上限约为15位小数。例如,以以下代码段为例:

var test : Double = 3.141592653589793238462643383279
斯威夫特游乐场显示该双精度值为3.141592653589793。有没有任何可能的方法可以让我在一个双精度表中获得超过15个小数位?从苹果的文档来看,这似乎是可能的:

Double的精度至少为15位小数,而 浮点精度可低至6位小数。这个 要使用的适当浮点类型取决于性质和范围 代码中需要使用的值的集合。在以下情况下: 任何一种类型都合适,最好是双精度

说“至少”的部分让人觉得这是可能的,但我找不到任何方法。我还知道,它不是简单地截断输出值的Swift Playgrounds。下面的代码返回true,即使值不相同,因此很明显,double只存储和比较多达15个小数位:

var test : Double = 3.141592653589793238462643383279

var result = test == 3.1415926535897932384626433
为了获得更高的精度,请使用
类型
(此结构中的第一位用于符号):

希望这能有所帮助。

“至少”意味着您可能会根据大小和数值多得到一个小数点。另外,他们可能指的是长双字型,但我对此表示怀疑。如果您需要更多的数字,请使用decimal或bignum类型。通过“至少15”可以得到16。这是双倍的
。查看
NSDecimalNumber
/
decimalnumber
并将其设置为38。另请参见
Float80.exponentBitCount        // 15
Float80.significandBitCount     // 63

Double.exponentBitCount         // 11
Double.significandBitCount      // 52