我创建了一个包含多个字段的结构 在该结构中,我有一个属性,该属性调用一个方法,然后从这些数字中创建一个字符串用于记录目的 当我在结构中使用属性时,当我直接调用创建日志字符串的实际方法时,我得到不同的小数点V! 假设我有9990M,如果我使用的结构是9990.0000,当我直接调用该方法时它打印9990.00
这是我的方法:
private static string CreateLog(
long userId, decimal amount,
long transactionID, decimal totalCash)
{
Values = string.Format("{0}{1}{2}{3}",
amount,
userId,
transactionId,
totalCash);
return Values;
}
我的结构看起来像这样:
public struct AccountStruct
{
public long USER_ID;
public decimal AMOUNT;
public long TRANSACTION_ID;
public decimal CURRENT_CASH;
string ValuesToBeLoged
{
get
{
return CreateLog(this);
}
}
}
CreateLog看起来像这样(调用前一种方法)
private static string CreateLog(AccountStruct accinfo)
{
return CreateLog( accinfo.USER_ID,
accinfo.AMOUNT,
accinfo.TRANSACTION_ID,
accinfo.CURRENT_CASH);
}
为什么会这样?这是什么问题?
答案 0 :(得分:1)
可能正在进行某种内部规范化。如果您关心这些问题,则需要在ToString或String.Format方法中指定所需的小数位数。
查找Decimal.ToString(String)作为选项。通常我会使用" Nx"其中x是小数位数。