You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何实现数值四舍五入并保留两位小数?

Swift代码计算结果四舍五入保留2位小数解决方案

首先你当前的代码存在计算公式笔误:totalMoney 赋值语句中卢比对应的计算项写为了 rupeeRate*rupeeRate,实际应为 rupeeRate * rupee,修正后再按以下两种方案实现保留两位小数的需求即可:


方案1:对计算结果做舍入后存储(适用于后续需要使用舍入值计算的场景)

通过扩展 Double 类型实现通用的保留指定位数小数的方法,直接对计算结果做四舍五入:

import Foundation

var yen: Double = 10
var krona: Double = 10
var rupee: Double = 10
var totalMoney: Double

var yenRate = 0.0088
var kronaRate = 0.116
var rupeeRate = 0.013

// 修正计算公式
totalMoney = yenRate * yen + kronaRate * krona + rupeeRate * rupee
// 四舍五入保留2位小数
let roundedTotal = totalMoney.rounded(toPlaces: 2)

print("The total of all currencies is equal to \(roundedTotal) in USD.")

// 扩展Double实现通用的保留指定位数小数方法
extension Double {
    func rounded(toPlaces places: Int) -> Double {
        let divisor = pow(10.0, Double(places))
        return (self * divisor).rounded() / divisor
    }
}

运行后输出的舍入结果为1.38。


方案2:输出时直接格式化(适用于仅需要展示两位小数的场景)

不需要修改计算逻辑,直接在字符串输出时指定格式即可,代码更简洁:

import Foundation

var yen: Double = 10
var krona: Double = 10
var rupee: Double = 10
var totalMoney: Double

var yenRate = 0.0088
var kronaRate = 0.116
var rupeeRate = 0.013

totalMoney = yenRate * yen + kronaRate * krona + rupeeRate * rupee
// 格式化输出保留2位小数
print(String(format: "The total of all currencies is equal to %.2f in USD.", totalMoney))

运行后输出内容为 The total of all currencies is equal to 1.38 in USD.。


内容的提问来源于stack exchange,提问作者Marni Velick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 00:39:01