Форматирование double (знаки после запятой) - C#

Узнай цену своей работы

Формулировка задачи:

Имеется double 58.1 Я могу преобразовать его к строке вида "58.100" посредством
Листинг программы
  1. string.Format("{0:0.000}", (double)num)
Но мне необходимо в double хранить именно 58.100, т.к. дальше происходит сериализация в Json. Как такое можно реализовать? Или есть возможность при сериализации указать количество десятичных знаков?

Решение задачи: «Форматирование double (знаки после запятой)»

textual
Листинг программы
  1. class X
  2. {
  3.     public double x;
  4.     public string Kawai = " Kawai ^^ ";
  5. }
  6.  
  7. class MyConverter : JsonConverter
  8. {
  9.     public override bool CanConvert(Type type)
  10.     {
  11.         return type == typeof(double);
  12.     }
  13.    
  14.     public override bool CanRead => false;
  15.     public override bool CanWrite => true;
  16.  
  17.     public override Object ReadJson(
  18.         JsonReader reader,
  19.         Type objectType,
  20.         Object existingValue,
  21.         JsonSerializer serializer
  22.     )
  23.     {
  24.         throw new NotSupportedException();
  25.     }
  26.  
  27.     public override void WriteJson(
  28.         JsonWriter writer,
  29.         Object value,
  30.         JsonSerializer serializer
  31.     )
  32.     {
  33.         writer.WriteRawValue(((double)value).ToString("F3"));
  34.     }
  35. }
  36.  
  37. void Main()
  38. {
  39.     var x = new X { x = 1.7 };
  40.     var serializer = new JsonSerializer();
  41.     serializer.Converters.Add(new MyConverter());
  42.     serializer.Serialize(Console.Out, x);
  43. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы