简体   繁体   中英

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

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.

在此处输入图片说明

There is no difference between 12 & 12.00 . The only thing we need is to present the value to user., for that you could use formatted string.

Like:

String(format: "%.2f", floatValue)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM