Форматирование double (знаки после запятой) - C#
Формулировка задачи:
Имеется double 58.1
Я могу преобразовать его к строке вида "58.100" посредством
Но мне необходимо в double хранить именно 58.100, т.к. дальше происходит сериализация в Json.
Как такое можно реализовать?
Или есть возможность при сериализации указать количество десятичных знаков?
string.Format("{0:0.000}", (double)num)Решение задачи: «Форматирование double (знаки после запятой)»
textual
Листинг программы
class X
{
public double x;
public string Kawai = " Kawai ^^ ";
}
class MyConverter : JsonConverter
{
public override bool CanConvert(Type type)
{
return type == typeof(double);
}
public override bool CanRead => false;
public override bool CanWrite => true;
public override Object ReadJson(
JsonReader reader,
Type objectType,
Object existingValue,
JsonSerializer serializer
)
{
throw new NotSupportedException();
}
public override void WriteJson(
JsonWriter writer,
Object value,
JsonSerializer serializer
)
{
writer.WriteRawValue(((double)value).ToString("F3"));
}
}
void Main()
{
var x = new X { x = 1.7 };
var serializer = new JsonSerializer();
serializer.Converters.Add(new MyConverter());
serializer.Serialize(Console.Out, x);
}