我想将数字四舍五入,并且不希望使用科学计数法来显示它。我正在使用此代码将小数点后舍入到6位,但是如果该值确实很小,它仍会使用科学计数法显示它。我知道我可以使用数字格式化程序(也显示在下面)来删除科学计数法,但是如果这样做,它将返回一个字符串,因此我无法将字符串四舍五入到小数位数。如果我先进行四舍五入,那仍然不能在所有情况下都起作用。它仍然显示一些数字而不四舍五入。实现此目标的最佳方法是什么?它应该适用于数字无限长或重复的所有不同情况
extension Double {
// Rounds the double to decimal places value
func rounded(toPlaces places:Int) -> Double {
let divisor = pow(10.0, Double(places))
return (self * divisor).rounded() / divisor
}
}
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = NumberFormatter.Style.decimal
numberFormatter.number(from:"")
Run Code Online (Sandbox Code Playgroud)
我尝试使用此代码
let currentValue = 1/2.3344 //answer is 0.42837559972584...
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = NumberFormatter.Style.decimal
numberFormatter.maximumFractionDigits = 6
guard let finalNum = numberFormatter.number(from: String(describing: currentValue)) else {return nil}
text = String (describing: finalNum)
Run Code Online (Sandbox Code Playgroud)
我希望它显示0.428375。该值四舍五入到小数点后六位。
当前值为:let currentValue = 1/233442000000428371 ...我希望它显示0.000004。小数点后四舍五入到小数点后六位,并且没有科学计数法。 …
我从API获得响应,但问题是API将值作为一串日期和双精度发回.因此我收到错误"预期解码Double但发现字符串/数据".我已经构建了这样的结构来解决问题,但这似乎是一个补丁.有没有更好的方法来解决这个问题?我觉得苹果已经想到了这一点,并包含一些原生的东西来解决这个问题.
struct SimpleOrder:Codable{
var createdDate:Date! {
return createdDateString.dateFromISO8601
}
var createdDateString:String
var orderId:String!
var priceVal:Double!
var priceString:String{
didSet {
priceVal = Double(self.priceString)!
}
}
private enum CodingKeys: String, CodingKey {
//case createdDate
case createdDateString = "time"
case orderId = "id"
case priceVal
case priceString = "price"
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道这是否相关,但这就是它的使用方式.我将数据作为字符串获取并将其转换为存储在dataFromString变量中的数据
let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .iso8601 //This is irrelevant though because the date is returned as a string.
do{
let beer = try decoder.decode(SimpleOrder.self, from: dataFromString)
print ("beer …Run Code Online (Sandbox Code Playgroud) 当应用程序进入后台时,我想在顶部视图控制器顶部的 xib 文件中放置一个模糊视图(以便可以对其进行自定义),以便用户在使用多任务处理时无法看到我的应用程序的内容。我该怎么做?我用根视图控制器尝试了很多东西,但没有用。我知道我需要使用这些委托方法,但我不确定如何获取顶视图控制器并在其上放置一个视图。我正在使用带有一堆导航控制器的标签栏控制器。
func applicationWillResignActive(_ application: UIApplication) {
}
Run Code Online (Sandbox Code Playgroud)
和
func applicationWillEnterForeground(_ application: UIApplication) {
}
Run Code Online (Sandbox Code Playgroud)
当应用程序再次打开时,我显然想摆脱那种模糊的视图,但我也想使用 Face/Touch ID 来提供访问权限。我认为使用 LocalAuthentication 非常简单。
现在我正在使用参数发出 Alamofire 请求。在发出请求之前我需要最终 URL,因为我需要散列最终 URL 并将其添加到请求标头中。我就是这样做的,但它没有给我最终的 URL 来散列并放入标题中。
Alamofire.request(url, method: .get, parameters: parameters, encoding: URLEncoding.default, headers: headers).responseJSON
Run Code Online (Sandbox Code Playgroud)
我想在发出此请求之前获取编码的 URL,因此请求如下所示
Alamofire.request(url, method: .get, headers: headers).responseJSON
Run Code Online (Sandbox Code Playgroud)
现在作为一种解决方法,我通过手动附加每个参数来手动创建 URL。有没有更好的方法来做到这一点?
let rexUrl = "https://www.google.com"
let requestPath = "/accounts"
let url = rexUrl + requestPath + "?apikey=\(apiKey)&market=USD&quantity=\(amount)&rate=\(price)&nonce=\(Date().timeIntervalSince1970)"
Run Code Online (Sandbox Code Playgroud) 我想阻止用户的 Macbook 在应用程序运行时自动休眠。我该怎么做?我见过这个
https://developer.apple.com/library/content/qa/qa1340/_index.html
和这个:
和这个:
但是没有我可以放置的简单代码行或委托方法使这像在 iOS 中一样简单?我只想让整个应用程序正常工作并阻止计算机自动进入睡眠状态。如果有人手动将其放入睡眠状态,那么显然没问题。我不想阻止用户让计算机进入睡眠状态。但是只要我的应用程序正在运行,我就不希望计算机进入睡眠状态。就像您在看电影时一样,该应用程序不会进入睡眠状态。我怎么做?
我觉得这是我需要的代码,但是我是否只需在 viewdidload 中运行此函数就可以了?有那么简单吗?
var assertionID: IOPMAssertionID = 0
var success: IOReturn?
func disableScreenSleep(reason: String = "Unknown reason") -> Bool? {
guard success != nil else { return nil }
success = IOPMAssertionCreateWithName( kIOPMAssertionTypeNoDisplaySleep as CFString,
IOPMAssertionLevel(kIOPMAssertionLevelOn),
reason as CFString,
&assertionID )
return success == kIOReturnSuccess
}
Run Code Online (Sandbox Code Playgroud)