%FDJNBMɺਖ਼ͬͯ͘͠ΔʁforJ1IPOF%FW4BQQPSPGFBU)","5"TXJGU
View Slide
}var employedBy = "YUMEMI Inc."var job = "iOS Tech Lead"var favoriteLanguage = "Swift"var twitter = "@lovee"var qiita = "lovee"var github = "el-hoshino"var additionalInfo = """M1 Max MacBook Proࠓಧ͍ͨʂ"""final class Me: Developable, Talkable {
ʲใʳΏΊΈɺ҉߸௨՟Λൃߦʂ˞ӕͰ͢ɻ
ͱ͍͏Θ͚Ͱ ΏΊΈͷڅ༩:VNF$PJOͰࢧڅʹ˞ӕͰ͢ɻ
// ࠓ݄ͷڅ༩var myYumeCoin = 0.2// ࠓ݄ͷϘʔφεmyYumeCoin += 0.1// ϘʔφεΛͬͯങ͍ʂmyYumeCoin -= 0.1// ߴ֬ೝprint(myYumeCoin) // 0.20000000000000004 ??????
ͳͥ͜Μͳ͜ͱ͕ى͜Δͷ͔w 4XJGUͰখΛѻ͏ͱ͖ɺσϑΥϧτͰDouble͕ΘΕΔw Doubleʮഒਫ਼ුಈখʯͳͷͰɺਫ਼ͷͰͦͦਖ਼֬ʹදͤͳ͍ࣈ͕ͨ͘͞Μ͋Δw େͷ߹ͦͷؙΊΒΕͨࣈͰʹͳΒͳ͍͕ɺۚ༥ܥͳͲͷ߹ਖ਼֬ʹѻ͏ඞཁ͕͋Δ
Decimal
Decimalܕw ුಈখΛेਐϕʔεͰѻ͏ͨΊͷܕw ༗ޮܻ͕ܻw ༗ޮܻൣғͰ͋Εेਐදهͷޡ͕ࠩͳ͍
import Foundation// ࠓ݄ͷڅ༩var myYumeCoin: Decimal = 0.2// ࠓ݄ͷϘʔφεmyYumeCoin += 0.1// ϘʔφεΛͬͯങ͍ʂmyYumeCoin -= 0.1// ߴ֬ೝprint(myYumeCoin) // 0.2 🎉'PVOEBUJPO͕ඞཁܕΛ໌ࣔతʹ%FDJNBMʹࢦఆ
DecimalɺŜƃŤƄƃŬžŜŘŢŦ
DecimalɺŜƃŤƄƃŬžŜŘŢŦͱɺࢥͬͨʁ
import Foundation// ࠓ݄ͷڅ༩var myYumeCoin: Decimal = 0.2// ࠓ݄ͷϘʔφεmyYumeCoin += 0.1// ϘʔφεΛͬͯങ͍ʂmyYumeCoin -= 0.1// ߴ֬ೝprint(myYumeCoin) // 0.2 🎉
import Foundation// ࠓ݄ͷڅ༩var myYumeCoin: Decimal = 0.2// ࠓ݄ͷϘʔφεmyYumeCoin += 0.1// ϘʔφεΛͬͯങ͍ʂmyYumeCoin -= 0.1// Decimal Λͬͯਖ਼֬ͳڅ༩ܭࢉ͕Ͱ͖͔ͨΒ͍͑ϘʔφεʂmyYumeCoin += 123.456// ߴ֬ೝprint(myYumeCoin) // 123.65599999999997952 !!!?????
DecimalɺūŬŹƂŜŽūŘ
DecimalͷϦςϥϧೖw খϦςϥϧͰDecimalΛೖͰ͖ΔͷɺExpressibleByFloatLiteralΛར༻ͨ݁͠Ռw ࣮init(floatLiteral value: Double)w DecimalΛ࡞ΔલʹͦͦઌʹҰճDoubleΛ࡞ͬͯͦͷ݁ՌΛೖ͍ͯ͠Δ͚ͩʂ
খϦςϥϧͰ DecimalΛೖ͠ͳ͍Ͱʂ
%FDJNBMΛखܰʢʁʣʹѻ͏ͨΊͷ ΠχγϟϥΠβʔ• init(_ value: String, format: Decimal.FormatStyle,lenient: Bool = true) throws // iOS 15+• init?(string: String, locale: Locale? = nil) // iOS 7+• // etc…
import Foundation// …// Decimal Λͬͯਖ਼֬ͳڅ༩ܭࢉ͕Ͱ͖͔ͨΒ͍͑Ϙʔφεʂ//myYumeCoin += 123.456// ࠓͦ͜ʂmyYumeCoin += try! .init("123.456", format: .number)// ߴ֬ೝprint(myYumeCoin) // 123.656 🎉
DecimalɺͪΐͬͱͰ͖͔ͨͳ
ʲࢀߟʳ
IUUQTGPSVNTTXJGUPSHUIPXUPJOJUJBMJ[FEFDJNBM
IUUQTJEFBMSFBMJUZDPNQSPHSBNJOHTXJGUEFDJNBMTUSJOH
ʲએʳ
IUUQTZVNFNJDPOOQBTTDPNFWFOU
IUUQTXXXZVNFNJDPKQDBUFHPSZSFDSVJU