Быстрая разница между Double и Float64 - PullRequest
1 голос
/ 10 мая 2019

В официальной документации языка программирования Swift написано

Double represents a 64-bit floating-point number.
Float represents a 32-bit floating-point number.

Ссылка: https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html#ID321

Тогда, почему существует Float64?В чем разница между ними?Или они одинаковые?

Ответы [ 2 ]

1 голос
/ 10 мая 2019

Заголовки, найденные путем нажатия команды + shift + o и поиска Float64, скажем:

/// A 64-bit floating point type.
public typealias Float64 = Double
/// A 32-bit floating point type.
public typealias Float32 = Float

и

Base floating point types 

    Float32         32 bit IEEE float:  1 sign bit, 8 exponent bits, 23 fraction bits
    Float64         64 bit IEEE float:  1 sign bit, 11 exponent bits, 52 fraction bits  
    Float80         80 bit MacOS float: 1 sign bit, 15 exponent bits, 1 integer bit, 63 fraction bits
    Float96         96 bit 68881 float: 1 sign bit, 15 exponent bits, 16 pad bits, 1 integer bit, 63 fraction bits

Note: These are fixed size floating point types, useful when writing a floating
      point value to disk.  If your compiler does not support a particular size 
      float, a struct is used instead.
      Use of of the NCEG types (e.g. double_t) or an ANSI C type (e.g. double) if
      you want a floating point representation that is natural for any given
      compiler, but might be a different size on different compilers.

Как правило, если вы не пишете код, который зависит от двоичных представлений, вы должны использовать стандартные имена Float v Double.Но если вы пишете что-то, где требуется двоичная совместимость (например, запись / анализ двоичного файла Data для обмена с какой-либо другой платформой), тогда вы можете использовать типы данных, которые содержат количество битов в имени, например Float32против Float64 против Float80.

1 голос
/ 10 мая 2019

Перейти к определению Float64

/// A 64-bit floating point type.
public typealias Float64 = Double

/// A 32-bit floating point type.
public typealias Float32 = Float
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...