iosswiftstringswift3nsdecimalnumber

Decimal values get remove when convert from String to Decimal in Swift


Please check this example

 let strValue = "12.00"
 let decimalValue = Decimal(string: strValue) // 12

it always returns 12 not 12.00 I also try with NSNumber, Float, and Double but it always remove zeros.

Can you please help me with this thanks in advance


Solution

  • Like martin said. 12 and 12.00 is the same number. It doesn't mathematical matter how many 0 are behind the comma.

    While a number stays the same, the representation is a different topic.

    String(format: "%.6f", 12) will give 12.000000 as String.

    Edit:
    A Decimal is a Struct. The meaning of the numbers stays the same. Throw this in a playground.

    import UIKit
    let decimal = Decimal(12.0000000000)
    let justAnInt = 12
    
    let sameDecimal = decimal == Decimal(justAnInt)
    

    See? There is no such thing as infinite 0 in math. Zero is finite. A Decimal from 12.000000 and a Decimal created from 12 are the same.

    enter image description here