Java BigDecimal
ayrıştırma için hangi veri tipini kullanabilirim? Hedefte - C, NSDecimalNumber
kullanılarak yapılabilir. Swift-native çözümüm var mı (NSDecimalNumber
kullanmadan)?Java BigDecimal in Swift
7
A
cevap
7
swift-native özümü derken, bu sizin istediğiniz gibi olmayabilir. Ancak Swift 3'te, eski bir C-struct tabanlı NSDecimal
, Decimal
olarak içe aktarılır ve bunun için "neredeyse Swift-native'tir" şeklinde büyük bir yeniden düzenleme yapılmıştır.
let deca = 1.23 as Decimal //<- This actually may produce some conversion error, while `ExpressibleByFloatLiteral` uses `Double` as an intermediate value.
let decb = 0.01 as Decimal
print(deca + decb == 1.24) //->true
GÜNCELLEME Eklendi sen Çift bir hesaplama hatası (ikili kayan noktalı sistemi) bulabilirsiniz basit bir örnek.
let dblc = 0.000001
let dbld = 100 as Double
let dble = 0.0001
print(dblc * dbld == dble) //->false (as Double cannot represent decimal fractions precisely)
let decc = Decimal(string: "0.000001")! //<- avoiding conversion error
let decd = 100 as Decimal //<- integer literal may not generate conversion error
let dece = Decimal(string: "0.0001")!
print(decc * decd == dece) //->true
İlgili konular
- 1. Java BigDecimal bellek kullanımı?
- 2. Java girdisi BigDecimal için istemi
- 3. Java 8 grup ve BigDecimal
- 4. Swift için bir başlatıcı bulunamıyor Swift in
- 5. Java BigDecimal ondalık ve sondaki sayıları kaldır
- 6. Java BigDecimal neden 1E + 1 değerini veriyor?
- 7. Int ile BigDecimal dönüştürme int - Java
- 8. Program aracılığıyla NSWindow in Swift
- 9. Swift Open Link in Safari
- 10. Tuple vs Swift in Yapısı
- 11. setRGB() in java
- 12. Uyku() in java (Android)
- 13. Yakut BigDecimal yöntemi hatası
- 14. Realloc UnsafeMutablePointer in Swift neden hatası
- 15. Metin içinde metin vurgulama Swift in görünümünde?
- 16. Burada atılan hatalar, {} catch in Swift 2.0
- 17. Ne tür bir harita, Java/Hibernate MySQL içinde BigDecimal?
- 18. Hata BigDecimal int dönüştürmek
- 19. 2 BigDecimal değerlerini ekleme
- 20. BigDecimal nasıl uygulanır?
- 21. BigDecimal/BigInteger'i ProtokolBuffers
- 22. BigDecimal sıfır nasıl sıfırlanır
- 23. BigDecimal ile Yuvarlama?
- 24. morphia BigDecimal kalıcılık sorunu
- 25. Google Map in JAVA Swing
- 26. almak LinkedList örneği in java
- 27. Sistem ve out in java
- 28. BigDecimal hash kodu "Normalleştiriliyor": Howto?
- 29. İş parçacığı için güvenlidir MessageDigest in Java
- 30. 8 karakteristik benzersiz Java in String
Sadece 'NSDecimalNumber' kullanımı (Xcode 8 beta 6'da test edilmiştir). Swift'den iyi çalışıyor. – Rob
Anlamıyorsunuz. Swift çözümü için yerel istiyorum (tabii eğer varsa). – SerjOxo
Anladım. "Yerel" bir çözüm mevcut değil. Ama 'NSDecimalNumber' iyi çalışıyor. Ve eğer isterseniz, operatörün + +, vb. Gibi operatörlerin beklediğiniz gibi çalışabilmesi için yerel bir çözüm gibi davranmasını sağlayan operatörleri tanımlayabilirsiniz. – Rob