XmlSerializer を使用して、10 進数を含む C# オブジェクトを xml の文字列にシリアル化しています
例えば
AnObject.ADecimalValue
以下のように明示的に丸めたとしても、精度が特に変化していることがわかります。たとえば、12564.39 は 12564.3900 として出力されます。
AnObject.ADecimalValue = decimal.Round(AnObject.ADecimalValue, 2);
シリアライズコードは以下です。
XmlSerializer serializer = new XmlSerializer(typeof(AnObject));
using (StringWriter writer = new StringWriter())
{
serializer.Serialize(writer, source);
string result = writer.ToString();
return result;
}
小数点の後に 2 つの値のみが出力されるようにするにはどうすればよいですか