尝试减少 Decimal 属性给出:表达式类型不明确,没有更多上下文

Posted

技术标签:

【中文标题】尝试减少 Decimal 属性给出:表达式类型不明确,没有更多上下文【英文标题】:Trying to reduce Decimal property gives: Type of expression is ambiguous without more context 【发布时间】:2018-03-04 19:27:22 【问题描述】:

我有一个名为 Transaction 的核心数据实体,其属性为 value,类型为 Decimal

我正在尝试减少事务数组,以总结 value 属性:

private var transactions = [Transaction]() 
    didSet 
        navigationItem.title = transactions.reduce(0.0)  $0.decimalNumberByAdding($1.value) 
    

但这会产生编译器错误:Type of expression is ambiguous without more context

如何通过对 Decimal 属性求和来减少对象数组?

【问题讨论】:

【参考方案1】:

发现尽管我的数据模型上的类型设置为Decimal,但实际上类型是NSDecimalNumber

所以它必须是:

let total = transactions.reduce(NSDecimalNumber(decimal: 0))  $0.adding($1.value ?? NSDecimalNumber(decimal: 0)) 
navigationItem.title = "$ \(total)"

【讨论】:

以上是关于尝试减少 Decimal 属性给出:表达式类型不明确,没有更多上下文的主要内容,如果未能解决你的问题,请参考以下文章

mysql字段类型为decimal,则java 实体类的对应属性类型应该为啥

IQueryable<decimal> 转十进制

C语言类型的自动转换时,啥类型能转换成啥类型呀?、嘿嘿,比如类型和decimal类型混合在一个表达

映射数据流列模式类型 =='decimal' 不更改十进制列

c#如何将null值附值decimal类型变量

从 `NSDecimal` 或 `NSDecimalNumber` 转换为 C# 的 `decimal` 类型