2016-11-17 3 views
0

В веб-интерфейсе API есть поле типа данных Number, которое мы извлекаем из Oracle и возвращаем в формате JSON. Так как тип чисел он показывает в результате 364578,0 так что теперь, используя формат строки, мы пытаемся избежать десятичной точки, какСтрока Форматирование на C# для обработки десятичных знаков

serializer.Serialize(writer, string.Format("{0:n0}",reader[i])); 

Он сделал решить эту проблему, он возвращает результат опуская десятичных пространств, но показывает результат, как 364,578 я просто проверка, есть ли вероятность того, что мы можем вернуть результат как 364578

+0

Почему вы заботитесь о том, что '.' в любом случае? Почему бы просто не сериализовать его как есть? –

+0

@PatrickHofman Пользователь API-клиента запрашивал, можно ли удалить десятичные знаки. Есть ли недостаток его форматирования. – user4912134

+0

В таких случаях я всегда задаюсь вопросом, могу ли я решить проблему или устранить ее. В этом случае вам может понадобиться обход этого. –

ответ

1

У нас была небольшая дискуссия в комментариях. Вы, кажется, не в состоянии решить проблему, так как API не в ваших руках. Это означает, что вы должны обходить это.

С вашего вопроса Я понимаю, что другой конец ожидает целое число, а не десятичное. Хорошо, хорошо давайте дадим ему int то:

serializer.Serialize(writer, Convert.ToInt32(reader[i])); 
1

Вы можете использовать пользовательские форматирования

serializer.Serialize(writer, (decimal)reader[i].ToString("0.#"); 
2

Попробуйте

serializer.Serialize(writer, string.Format("{0:f0}",reader[i])); 

Формат F не использует тысячи разделителей. Проверьте MSDN.

Смежные вопросы