零后舍入到2位的十进制值

时间:2014-03-28 01:25:54

标签: c# types decimal

我正在计算折扣后的产品价格。一个例子是产品A将是100美元,折扣11.5%。当我将11.5%的折扣存储为小数时,如

myDecimal = 0.885M

变量四舍五入到2位变为0.89。我使用了错误的数据类型吗?我不确定还有什么用,因为我因为数学错误而被教导不使用浮点值。

什么是解决方案?

1 个答案:

答案 0 :(得分:2)

您只是查看小数的字符串表示形式,它似乎给您2位小数,尝试使用不同的string format specification这样的内容。

static void Main(string[] args)
{
    decimal myDecimal = 0.885M;
    Console.WriteLine(myDecimal.ToString("N"));
    Console.WriteLine(myDecimal.ToString("N3"));
    Console.ReadLine();
}

根据MSDN的默认Decimal.ToString()实施规定:

  

ToString方法以当前文化的默认(“G”或一般)格式格式化十进制值。