Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#十进制记忆精度:如何调整_C#_Decimal_Precision_Digits - Fatal编程技术网

C#十进制记忆精度:如何调整

C#十进制记忆精度:如何调整,c#,decimal,precision,digits,C#,Decimal,Precision,Digits,Decimal会记住其小数位数: Console.WriteLine(1.1m); // 1.1 Console.WriteLine(1.10m); // 1.10 我不控制序列化(因此无法使用更显式格式的stringify),但需要精确输出2位小数 因此,我试图将任何小数点强制转换为相同的值,但有2位小数 可以使用ToString(“F”)和Decimal.Parse()实现。但是有没有比通过ToString()更简洁的方法呢?为了确保/提高小数点后的“精度”高达2位数,您可以添加0.00m

Decimal会记住其小数位数:

Console.WriteLine(1.1m); // 1.1
Console.WriteLine(1.10m); // 1.10
我不控制序列化(因此无法使用更显式格式的stringify),但需要精确输出2位小数

因此,我试图将任何小数点强制转换为相同的值,但有2位小数


可以使用
ToString(“F”)
Decimal.Parse()
实现。但是有没有比通过
ToString()
更简洁的方法呢?

为了确保/提高小数点后的“精度”高达
2位数,您可以添加
0.00m

1.1m + 0.00m == 1.10m
同样的想法概括如下:

private static decimal FormatOut(decimal value, int afterDecimal) {
  // rounding up and adding 0.00…0 - afterDecimal zeroes        
  return Decimal.Round(value, afterDecimal, MidpointRounding.AwayFromZero) + 
         new decimal(0, 0, 0, false, (byte)afterDecimal);
}

...

decimal result = FormatOut(1.1m, 2);

// 1.10
Console.Write(result);

为了确保/增加小数点后的“精度”至
2位数,您可以添加
0.00m

1.1m + 0.00m == 1.10m
同样的想法概括如下:

private static decimal FormatOut(decimal value, int afterDecimal) {
  // rounding up and adding 0.00…0 - afterDecimal zeroes        
  return Decimal.Round(value, afterDecimal, MidpointRounding.AwayFromZero) + 
         new decimal(0, 0, 0, false, (byte)afterDecimal);
}

...

decimal result = FormatOut(1.1m, 2);

// 1.10
Console.Write(result);

如果要提高“精度”,请添加
0.00m
1.1m+0.00m==1.10m
如何序列化?您可能可以控制小数在序列化程序本身中的序列化方式。如果要提高“精度”,请添加
0.00m
1.1m+0.00m==1.10m
如何序列化?您可能可以控制小数在序列化程序本身中的序列化方式。