Ответ 1
Пока theres no 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
Итак, прежде чем вы приступите к некоторым вычислениям, которые, возможно, будут соответствовать этим ограничениям, вы, вероятно, должны прочитать информацию о плавающей запятой. Здесь и здесь, вероятно, хорошее начало.