I would have thought that
? ((decimal)123.45).ToString("0.0000")
"123.4500"
would be cheaper faster more understandable?

On Sun, Aug 11, 2013 at 6:57 PM, Corneliu I. Tusnea
<corne...@acorns.com.au>wrote:

> Yes, that's my issue. It seems that if you somehow tell is there are
> multiple zeros is keeps than and displays them during the .ToString().
> This is what I ended up doing:
> private class JsonTextWriterOptimized : JsonTextWriter
> {
> public JsonTextWriterOptimized(TextWriter textWriter)
> : base(textWriter)
> {
>  }
>
> public override void WriteValue(decimal value)
> {
>          // we really really really want the value to be serialized as
> "0.0000" not "0.00" or "0.0000"!
>         //This is very important for all our hash calculations
>  *value = Math.Round(value, 4);   *
> * value = Math.Round((((value+0.00001M)/10000)*10000)-0.00001M, 4); //
> divide first to force the appearance of 4 decimals*
>          base.WriteValue(value);
> }
> }
> The I use this writer during the serialization.
>
> That will make 123.12 > 123.1200 and even 100 to 100.0000 :)
>
>
>
> On Sun, Aug 11, 2013 at 5:34 PM, Mark Hurd <markeh...@gmail.com> wrote:
>
>> Note that, obviously, one of Decimal's claims to fame is that it
>> considers trailing zeros as significant, so serializing /should/
>> record those details.
>>
>> If you want to adjust that, use Decimal.Round(value, 2), but note that
>> this does not add trailing zeros, only removes extras.
>>
>> --
>> Regards,
>> Mark Hurd, B.Sc.(Ma.)(Hons.)
>>
>>
>> On 11 August 2013 14:32, Corneliu I. Tusnea <corne...@acorns.com.au>
>> wrote:
>> > Hi,
>> >
>> > Anyone working today?
>> >
>> > How can I force the NewtonSoft Json Serializer to serialize two
>> decimals the
>> > same way? decimal a = 1234.1200M; decimal b = 1234.12M;
>> >
>> > var sa = JsonConvert.SerializeObject(new { value = a });
>> > var sb = JsonConvert.SerializeObject(new {value = b});
>> > Console.WriteLine(sa);
>> > Console.WriteLine(sb);
>> >
>> > Results are: {"value":1234.1200} {"value":1234.12}
>> >
>> > How can I force it to serialize them both with 4 decimals so the
>> results are
>> > identical?
>> >
>> > Even simpler, ignoring the serializer, how can I make sa.ToString() ==
>> > sb.ToString() ?
>> > The Json Serializer is only doing a simple .ToString() behind the
>> scenes.
>> >
>> > Regards,
>> > Corneliu
>> >
>>
>
>

Reply via email to