KyoDecimalNumber
一个简单扩展,使得操作 NSDecimalNumber 变得更加容易!
功能
- 简化 NSDecimalnumber 中的四舍五入操作。
- 扩展了公共数据类型到 NSDecimalNumber 的转换。
- 自定义操作符使
+
-
*
/
>
>=
<
<=
==
能够直接在 NSDecimalNumber 上使用。
从KyoDecimalNumber开始
舍入
您可以为保留的小数位数提供预留值,并指定返回的数据类型是 String 还是 NSDecimalNumber。
var price = NSDecimalNumber(string: "15.54321")
price = price.roundUp() //NSDecimalNumber -> 15.54
var strPrice: String = price.roundUp() //String -> 15.54
strPrice = price.roundUp(fractionNum: 1) //String -> 15.5
let string = price.roundUp(type: String.self) //String -> 15.54
let decimalNumber = price.roundUp(type: NSDecimalNumber.self) //NSDecimalNumber -> 15.54
转换
目前支持将 NSNumber
String
Float
Double
Bool
Int
UInt
Int8
Int16
Int32
Int64
转换为 NSDecimalNumber。
let number: NSNumber = NSNumber(value: 32)
let fromNumber = number.decimalNumber()
let string: String = "32"
let fromString = string.decimalNumber()
let float: Float = 32.22
let fromFloat = float.decimalNumber()
let double: Double = 32.22
let fromDouble = double.decimalNumber()
let bool: Bool = true
let fromBool = bool.decimalNumber()
let int: Int = 32
let fromInt = int.decimalNumber()
let uint: UInt = 32
let fromUInt = uint.decimalNumber()
let int8: Int8 = 32
let fromInt8 = int8.decimalNumber()
let int16: Int16 = 32
let fromInt16 = int16.decimalNumber()
let int32: Int32 = 32
let fromInt32 = int32.decimalNumber()
let int64: Int64 = 32
let fromInt64 = int64.decimalNumber()
自定义运算符
您可以在 NSDecimalNumber 上使用像值类型一样的常用运算符。
var decimalNumber: NSDecimalNumber = 23.2.decimalNumber() + "15.2".decimalNumber() //38.4
decimalNumber = nil - 15.23.decimalNumber() //-15.23
decimalNumber = decimalNumber * 2.1 //-31.983
decimalNumber = decimalNumber / "2".decimalNumber() //-15.9915
print("12".decimalNumber() >= 12) //true
print(11.decimalNumber() > 12) //false
print(12.decimalNumber() == "12.00".decimalNumber()) //true
print(true.decimalNumber() <= "0".decimalNumber()) //false
print(100.01.decimalNumber() < 100.02) //true
安装
Cocoapods
CocoaPods 是一个用于 Cocoa 项目的依赖管理器。您可以使用以下命令进行安装
$ gem install cocoapods
使用 CocoaPods 将 KyoDecimalNumber 集成到您的 Xcode 项目中,请在 Podfile 中指定它到目标
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '11.0'
use_frameworks!
target '<Your Target Name>' do
# your other pod
# ...
pod 'KyoDecimalNumber', '~> 0.0.4'
end
手动
如果您不想使用上述依赖管理器,可以手动将 KyoDecimalNumber 集成到您的项目中。
- 将 KyoDecimalNumber 克隆或下载到您的计算机。
- 打开 KyoDecimalNumber 文件夹,将
NSDecimalNumber+KyoOperand.swift
和NSDecimalNumber+KyoRoundUp.swift
拖入您的应用程序项目的文件导航器中,位于您的应用程序项目下。 - 如果您使用 Objective-C,将
NSDecimalNumber+KyoConvert.h
和NSDecimalNumber+KyoConvert.m
拖入您的项目中。
授权许可
KyoDecimalNumber 采用 MIT 许可协议发布。
MIT 许可协议
版权所有 (c) 2020 Live
任何人无需费用即可获得一份此软件和相关文档的副本(以下简称“软件”),不受限制地使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,或允许向获得软件的人提供这样做,但必须遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他,这些索赔、损害或其他责任源于、产生于或与软件或其使用有关。