这是我的代码:
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; }
}
这有帮助吗?
答案 0 :(得分:5)
Payment
属性必须是实现IFormatable
接口的类型。在这种情况下可能Decimal
,因为付款似乎是货币价值
如果这不可能,则需要首先解析字符串值,例如:
receipt.AmountCharged =
String.Format("{0:C}", Decimal.Parse(recordPaymentRequest.Payment));