0

这是我的代码:

receipt.AmountCharged = String.Format("{0:C}", recordPaymentRequest.Payment);

我在“0:C”收到一条消息:

指定了格式,但参数不是 IFormatable

如果我尝试.tostring("C")l,我会得到:

错误 CS1502: 'string.ToString(System.IFormatProvider)' 的最佳重载方法匹配有一些无效参数错误 CS1503: 参数 1: 无法从 'string' 转换为 'System.IFormatProvider'

如何将其转换为货币或 2 位小数?

那个 iformatprovider 是什么意思?

为了澄清:

[DataContract]
public class RecordPaymentRequest : TokenRequest {

    [DataMember]
    public string Payment {
        get { return payment; }
        set { payment = value; }
    }

这有帮助吗?

4

1 回答 1

5

Payment属性需要是实现IFormatable接口的类型。在这种情况下,可能是Decimal因为付款似乎是一种货币价值。
如果这不可能,您需要先解析字符串值,例如:

receipt.AmountCharged = 
         String.Format("{0:C}", Decimal.Parse(recordPaymentRequest.Payment));
于 2012-08-16T18:00:42.753 回答