Remove for loop in computing mantissa double value (#961)
diff --git a/Foundation/NSDecimal.swift b/Foundation/NSDecimal.swift
index 88785f2..e22cfcd 100644
--- a/Foundation/NSDecimal.swift
+++ b/Foundation/NSDecimal.swift
@@ -205,29 +205,16 @@
if _length == 0 && _isNegative == 1 {
return Double.nan
}
- for i in 0..<8 {
- let index = 8 - i - 1
- switch index {
- case 0:
- d = d * 65536 + Double(_mantissa.0)
- case 1:
- d = d * 65536 + Double(_mantissa.1)
- case 2:
- d = d * 65536 + Double(_mantissa.2)
- case 3:
- d = d * 65536 + Double(_mantissa.3)
- case 4:
- d = d * 65536 + Double(_mantissa.4)
- case 5:
- d = d * 65536 + Double(_mantissa.5)
- case 6:
- d = d * 65536 + Double(_mantissa.6)
- case 7:
- d = d * 65536 + Double(_mantissa.7)
- default:
- fatalError("conversion overflow")
- }
- }
+
+ d = d * 65536 + Double(_mantissa.7)
+ d = d * 65536 + Double(_mantissa.6)
+ d = d * 65536 + Double(_mantissa.5)
+ d = d * 65536 + Double(_mantissa.4)
+ d = d * 65536 + Double(_mantissa.3)
+ d = d * 65536 + Double(_mantissa.2)
+ d = d * 65536 + Double(_mantissa.1)
+ d = d * 65536 + Double(_mantissa.0)
+
if _exponent < 0 {
for _ in _exponent..<0 {
d /= 10.0