Пока нет Double.max
, он определен в заголовке C float.h
, к которому вы можете получить доступ в Swift через import Darwin
.
import Darwin
let fmax = FLT_MAX
let dmax = DBL_MAX
Это примерно 3.4 * 10^38
и 1.79 * 10^308
соответственно.
Но имейте в виду, что это не так просто с числами с плавающей запятой (это никогда не бывает простым с числами с плавающей запятой). При проведении номеров этой большой, вы теряете точность подобным образом, чтобы потери точности при очень малых количествах, так:
let d = DBL_MAX
let e = d - 1.0
let diff = d - e
diff == 0.0 // true
let maxPlusOne = DBL_MAX + 1
maxPlusOne == d // true
let inf = DBL_MAX * 2
// perhaps infinity is the “maximum”
inf == Double.infinity // true
Поэтому, прежде чем попасть в некоторые расчеты, которые могли бы, возможно, подучиться против этих ограничений, вероятно, вы должны прочитать вверх по плавающей точке. Here и here, вероятно, хорошее начало. Ответ
Я попробую вас на игровой площадке Xcode и получите '(+ бесконечность)' для Double и 340,282,346,638,529,000,000,000,000,000,000,000,000,000.0 для Float. Почему Double и Int64 имеют 64-битные, но double могут хранить больше номеров? –
Вам нужно узнать о представлении с плавающей запятой. Начните с статьи [wikipedia article] (http://en.wikipedia.org/wiki/Floating_point), а также [это введение] (http://introcs.cs.princeton.edu/java/91float/) –
Спасибо, много. Я прочитаю их все. –