如何将 Double 格式化为货币 - Swift 3

2023-11-27

我是 Swift 编程新手,我一直在 Xcode 8.2 中创建一个简单的小费计算器应用程序,我在我的 Xcode 中设置了计算IBAction以下。但当我实际运行我的应用程序并输入要计算的金额(例如 23.45)时,它会显示超过 2 位小数。我如何将其格式化为.currency在这种情况下?

@IBAction func calculateButtonTapped(_ sender: Any) {

    var tipPercentage: Double {

        if tipAmountSegmentedControl.selectedSegmentIndex == 0 {
            return 0.05
        } else if tipAmountSegmentedControl.selectedSegmentIndex == 1 {
            return 0.10
        } else {
            return 0.2
        }
    }

    let billAmount: Double? = Double(userInputTextField.text!)

    if let billAmount = billAmount {
        let tipAmount = billAmount * tipPercentage
        let totalBillAmount = billAmount + tipAmount

        tipAmountLabel.text = "Tip Amount: $\(tipAmount)"
        totalBillAmountLabel.text = "Total Bill Amount: $\(totalBillAmount)"
    }
}

如果您想强制货币为 $,您可以使用此字符串初始值设定项:

String(format: "Tip Amount: $%.02f", tipAmount)

如果您希望它完全依赖于设备的区域设置,您应该使用NumberFormatter。这将考虑货币的小数位数以及正确定位货币符号。例如。对于 es_ES 语言环境,双精度值 2.4 将返回“2,40 €”;对于 jp_JP 语言环境,双精度值 2.4 将返回“¥ 2”。

let formatter = NumberFormatter()
formatter.locale = Locale.current // Change this to another locale if you want to force a specific locale, otherwise this is redundant as the current locale is the default already
formatter.numberStyle = .currency
if let formattedTipAmount = formatter.string(from: tipAmount as NSNumber) {
    tipAmountLabel.text = "Tip Amount: \(formattedTipAmount)"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Double 格式化为货币 - Swift 3 的相关文章

  • 我如何从子视图导航到 mainviewcontroller

    我刚刚开始使用 swift 我创建了一个子视图 上面有一个按钮 我想使用该按钮将我带到我的主视图控制器 我对不同的按钮使用了相同的功能 但是在同一文件中具有一个功能允许该按钮工作 代码如下 var playAgainButton UIBut
  • 无法构建 Saurik 的 ldid 实用程序

    当我执行此命令 make sh 时 我遇到这些错误 构建用于越狱调整开发的 ldid 实用程序 Bilals Mac ldid billy make sh g arch i386 arch x86 64 arch ppc arch armv
  • UIButton 导致无法识别的选择器发送到实例

    我正在尝试使用 for 循环创建多个按钮 但在使用 sender 函数时遇到问题 我有以下代码 func setUpButtons for i in 1 3 let btn UIButton UIButton frame CGRect x
  • 如何在 Firebase 控制台中使用 Apple 新的 APN .p8 证书

    随着最近 Apple 开发者帐户的升级 我面临着一个困难 在尝试创建推送通知证书时 它为我提供了 p8 证书 而不是可以导出到 p12 的 APNs 证书 Firebase 控制台仅接受 p12 证书 那么我如何从这些新的 p8 证书中获取
  • 带操作按钮的颤动本地通知

    我在我的 flutter 项目中尝试了 flutter 本地通知插件 它在简单通知上工作正常 但我需要带有操作按钮的通知功能 请帮助我或建议我实现此功能 不幸的是 flutter local notifications 插件尚不支持操作按钮
  • 从“NSPercientStoreResult”转换为不相关类型“Entity”总是失败

    我正在创建一个小应用程序来学习 CoreData 中的多对多关系 但是 使用下面的代码 从 NSFetchResult 到实体类 Groepering 的转换出现错误 与我的项目相比 我在互联网上找到的示例没有看到任何差异 为什么转换仍然失
  • UIScrollView setZoomScale 将应用的旋转设置回零

    我已经从事地图替换工作很长一段时间了 整个事情的工作原理是UIScrollView由一个支持CATiledLayer 为了旋转我的地图 我旋转图层本身 使用CATransform3DMakeRotation 到目前为止效果很好 但如果我打电
  • 当我输入字符时,SwiftUI 中的 TextField 失去焦点

    当我在文本字段中输入字符时遇到问题 在练习集视图 我必须重新单击文本框才能输入另一个字符 如果我从文本字段中删除绑定 我可以流畅地输入文本 我认为这与我的演讲者班级和更新集函数重新创建一个集合实例 因为我必须替换数组中两层深处的一些值 Co
  • 在 Xcode 5 中重命名 iOS 项目[重复]

    这个问题在这里已经有答案了 我需要重命名一个 iOS 项目 有没有办法在不开始一个全新项目的情况下做到这一点 我发现的所有其他信息都与 Xcode 4 或旧版本相关 这些方法似乎使项目崩溃 我在尝试任何名称更改之前创建了一个快照 在 Xco
  • 在 iOS 上将 NSString 转换为 NSDate 的正确方法?

    我一直在使用此方法将常规 NSString 对象转换为 NSDate 但尝试向 Apple 提交更新 但遭到拒绝 在 iOS 中还有什么其他方法可以做到这一点 NSString date str 2011 08 12T12 20 00Z N
  • UIButton的高亮状态由什么控制事件开始和结束

    我正在创建类似钢琴的视图UIButton作为钢琴键 什么UIControlEvents当按钮获得和失去突出显示状态时 我应该监听以获得回调吗 我试图创建子类UIButton并添加属性观察者highlighted并且运行良好 然而 有时我需要
  • 覆盖层不与 UITableView 一起滚动 - iOS

    我有一个 UITableView 类 它使用以下方法在转到下一个屏幕时调用加载覆盖 问题是这个加载屏幕不随列表滚动 所以如果你滚动一点并单击某些东西 加载屏幕不会显示 因为它位于顶部 如何让加载屏幕始终保持在 UITableView 的顶部
  • 将 Firebase 云消息传递与 Windows 应用程序结合使用

    我在 Android 和 iOS 应用程序中使用 Firebase Cloud Messaging 但是我还有此应用程序的 Windows Mac OS 版本 我想保留相同的逻辑 我知道 Firebase Cloud Messaging 可
  • Swift:使具有相同“形状”的两种类型符合通用协议

    我有两种不同的类型 它们代表相同的数据 并且具有完全相同的 形状 这两种不同的类型是代码生成的 我被迫处理它们 但是 我想让它们符合一个通用的协议 这样我就可以对这两种类型一视同仁 这是一个例子 假设这是我所坚持的两种代码生成类型 stru
  • 在 iOS 中,如何创建一个始终位于所有其他视图控制器之上的按钮?

    无论是否呈现模态或用户执行任何类型的转场 有没有办法让按钮在整个应用程序中 始终位于顶部 而不是屏幕顶部 有什么方法可以让这个按钮可拖动并可捕捉到屏幕上吗 我正在以苹果自己的辅助触摸作为此类按钮的示例 您可以通过创建自己的子类来做到这一点U
  • 如何让按钮闪烁?

    我试图在扫描正确时将按钮的颜色 只是闪烁 闪烁 更改为绿色 在出现问题时将按钮的颜色更改为红色 我可以用这样的视图来做到这一点 func flashBG UIView animateWithDuration 0 7 animations s
  • UIImageJPEGRepresentation 在视网膜显示屏上提供 2x 图像

    我有这段代码 它创建一个图像 然后向其添加一些效果并缩小其大小以使其largeThumbnail UIImage originalImage UIImage imageWithData self originalImage thumbnai
  • Swift 中的 import 语句是否有相关成本?

    阅读字符串宣言 我看到一个段落 https github com apple swift blob master docs StringManifesto md batteries included关于避免Foundation不需要的时候导
  • SwiftUI:发送电子邮件

    在正常情况下UIViewController在 Swift 中 我使用此代码发送邮件 let mailComposeViewController configuredMailComposeViewController mailCompose
  • iOS - UITableViewCell 使文本加粗

    我有一个字符串 NSString userInfo James Johnson james 我想做的就是大胆James Johnson并保留 james正常字体 所以我尝试过的是使用NSAttributedString但为了完成这个过程 我

随机推荐

  • 对泛型类的非泛型引用会导致非泛型返回类型

    我有一个遗留类 该类本身不是泛型 但其方法返回类型之一使用泛型 public class Thing public Collection
  • 函数指针声明 - __P 的作用是什么?

    函数指针定义的通常形式是 int function int int int ptr int int 但我今天看到了一个我不明白的表格 谁能解释一下吗 int close P struct db The P 宏通常用于支持 K R C 时代的
  • 如何为python 2.7.x创建虚拟环境?

    我的 mac OSX 上安装了 3 个版本的 python 机器预装了 Python 2 7 6 我之前安装过python 3 4 3 现在我通过从网站下载pkg文件安装了python 2 7 11 我还安装了 pip 和 virtuale
  • 在不知道年份的情况下使用 DateTime.TryParseExact

    我有一个方法 有时 接受以下格式的字符串 dddd MMMM dd 1 月 4 日星期一 需要解析为 DateTime 我说有时是因为它也可能被传递进来 Today or Tomorrow 作为值 处理这个问题的代码很简单 if strin
  • 收到的电子邮件附件为“noname”

    以下 Python 函数会导致附件被命名为 noname 而本应为 text file txt 正如您所看到的 我尝试了使用 MIMEBase 和 MIMEApplication 的两种不同方法 我也尝试过 MIMEMultipart al
  • RuntimeError:在请求上下文之外工作

    我正在尝试创建一个 保持活动 的 websocket 线程 一旦有人连接到该页面 每 10 秒向浏览器发送一次发射 但我收到错误 并且不确定如何解决它 关于如何实现这项工作有什么想法吗 一旦发送 断开连接 我将如何终止该线程 Thanks
  • 为什么Java的划分被打破了?

    我是一名经验丰富的 php 开发人员 刚刚开始学习 Java 我目前正在学习 Lynda 的一些课程 但我仍处于早期阶段 我正在编写示例程序 要求用户输入并进行简单的计算之类的事情 昨天我遇到这样的情况 double result 1 2
  • 如何使用 jQuery AJAX 和 PHP 数组返回 [重复]

    这个问题在这里已经有答案了 我有一个 jquery ajax 请求 例如 ajax type POST url processor php data data1 testdata1 data2 testdata2 data3 testdat
  • Matlab for 循环,循环计数器递减

    这不起作用 我可以找出原因 你能帮助我吗 for l 300 1 1 gauss fspecial gaussian 1 round 1 0 15 l 0 015 l filter g l 1 filter2 gauss img d l 1
  • 从表中计数,但在达到某个数字时停止计数

    MySQL 有没有办法COUNT 从表中如果数字大于x 它会在那里停止计数吗 基本上 我只想知道查询返回的记录数是否大于或小于特定数字 如果大于该数字 我并不关心有多少行 如果小于该数字 请告诉我计数 我已经能够像这样捏造它 let x b
  • CSS 选择器无法匹配数字属性值?为什么?

    我设置了一个简单的测试页面来说明我遇到的问题 简而言之 这按预期工作 文本格式为粗体 带红色下划线
  • 去掉选项菜单周围的白色边框

    我正在尝试去掉周围的白色边框OptionMenu 我尝试过的 我把颜色改为红色 但周围仍然有白色边框 有人可以帮忙吗 这是代码 from tkinter import import tkinter as tk from tkinter im
  • delay() 和 fadeOut() 不会延迟队列中的 attr()

    这段代码有什么问题 我试图得到这样的效果 fadeOut 500 and attr class myClass 延迟了 600 毫秒 然后delay 600 再次 并且fadeIn 500 延迟发生是正确的 但是attr 没有被延迟 它会在
  • “connection.queries”在 Django 中不返回任何内容

    from django db import connection reset queries 印刷 reset queries p XModel objects filter id id values name annotate quant
  • 如何向 Android 添加新的手机日历?

    Android 上的日历应用程序可以合并多个单独的日历 本地手机日历 Google 日历等 如何向 Android 手机添加新的此类日历 我想动态生成该日历中的事件 而无需访问任何在线资源 例如 Google 编辑 我想支持 Android
  • Javascript 历史框架的经验

    我正在寻找一个 javascript 历史框架来在用户选择多个更改页面行为的选项时处理页面内的导航 页面上有多个人工制品会更改页面的数据加载 我想将其存储为一组堆叠的行为 从更广泛的意义上讲 出于同样的原因 我想将其作为工具包添加到我未来的
  • 在 Asyncio Web 抓取应用程序中将 BeautifulSoup 代码放在哪里

    我需要抓取并获取许多 每天 5 10k 新闻文章的正文段落的原始文本 我已经编写了一些线程代码 但考虑到这个项目的高度 I O 绑定性质 我正在涉足asyncio 下面的代码片段并不比 1 线程版本快 而且比我的线程版本差得多 谁能告诉我我
  • @selector 中的参数

    有什么方法可以在选择器中传递参数吗 example 我有这个方法 void myMethod NSString value1 setValue2 NSString value2 我需要通过传递两个参数的选择器来调用这个函数 NSTimer
  • 有谁知道pytesseract的image_to_data、image_to_osd方法的输出含义?

    我正在尝试使用从图像中提取数据pytesseract 该模块有图像到数据 图像到OSD方法 这两个方法提供了大量信息 TextLineOrder WritingDirection ScriptDetection Orientation 等
  • 如何将 Double 格式化为货币 - Swift 3

    我是 Swift 编程新手 我一直在 Xcode 8 2 中创建一个简单的小费计算器应用程序 我在我的 Xcode 中设置了计算IBAction以下 但当我实际运行我的应用程序并输入要计算的金额 例如 23 45 时 它会显示超过 2 位小