Попробуйте:
class SomeClass {
var coreDataStuff = CoreDataStuff!
lazy var somethingElse: SomethingElse = SomethingElse(coreDataStuff: self.coreDataStuff)
}
Важно уточнить тип вашего ленивого var и добавить self.
к аргументу, который вы передаете
Использовать Math.round()
, возможно в сочетании с MidpointRounding.AwayFromZero
например:
Math.Round(1.2) ==> 1
Math.Round(1.5) ==> 2
Math.Round(2.5) ==> 2
Math.Round(2.5, MidpointRounding.AwayFromZero) ==> 3
double d = 1.234;
int i = Convert.ToInt32(d);
Дескрипторы, округляющиеся как так:
округленный к ближайшему 32-разрядному целому числу со знаком. Если значение является промежуточным между двумя целыми числами, четное число возвращается; то есть, 4.5 преобразовывается в 4, и 5.5 преобразовывается в 6.
Методы в другом броске ответов OverflowException
, если значение плавающее вне Международного диапазона. https://docs.microsoft.com/en-us/dotnet/api/system.convert.toint32? view=netframework-4.8#System_Convert_ToInt32_System_Single _
int result = 0;
try {
result = Convert.ToInt32(value);
}
catch (OverflowException) {
if (value > 0) result = int.MaxValue;
else result = int.Minvalue;
}