C#: Форматирование Цены оценивает строку

Кажется мне, что RFC 2616 не определяет это.

раздел From 4.3:

присутствие тела сообщения в запросе сообщено включением Довольной Длины или Кодирования полей заголовков передачи в заголовках сообщения запроса. Тело сообщения не ДОЛЖНО быть включено в запрос, если спецификация метода запроса (разделяют 5.1.1) не позволяет отправлять тело объекта в запросах. Сервер ДОЛЖЕН считать и передать тело сообщения по любому запросу; если метод запроса не включает определенную семантику для тела объекта, то тело сообщения ДОЛЖНО быть проигнорировано при обрабатывании запроса.

И раздел 9.7:

УДАЛИТЬ метод запрашивает, чтобы сервер источника удалил ресурс, определенный URI запроса. Этот метод МОЖЕТ быть переопределен человеческим вмешательством (или другие средства) на сервере источника. Клиенту нельзя гарантировать это, операция была выполнена, даже если код статуса, возвращенный из сервера источника, указывает, что действие было завершено успешно. Однако сервер не ДОЛЖЕН указывать на успех, если, в то время, когда ответ не дан, это намеревается удалить ресурс или переместить его в недоступное местоположение.

А успешный ответ ДОЛЖЕН быть 200 (хорошо), если ответ включает объект, описывающий состояние, 202 (Принятый), если действие еще не было выполнено, или 204 (Никакое Содержание), если действие было выполнено, но ответ не включает объект.

, Если запрос проходит через кэш и URI запроса, определяет один или несколько в настоящее время кэшируемых объектов, те записи НУЖНО рассматривать как устаревшие. Ответы на этот метод не являются cacheable.c

, Таким образом, это явно не позволено или запрещено, и существует шанс, что прокси по пути мог бы удалить тело сообщения (хотя это ДОЛЖНО считать и передать его).

10
задан Cœur 1 January 2017 в 15:44
поделиться

5 ответов

myPrice.ToString("N2");

в зависимости от того, что вы хотите, вы может также потребоваться отобразить символ валюты:

myPrice.ToString("C2");

(Число после C или N указывает, сколько десятичных знаков следует использовать). (C форматирует число как строку валюты, которая включает символ валюты)

Чтобы быть полностью политически корректным, вы также можете указать CultureInfo, который следует использовать.

27
ответ дан 3 December 2019 в 13:19
поделиться

Я думаю, это должно сработать:

String.Format("{0:C}", doubleVar);

Если вам не нужен символ валюты, просто сделайте следующее:

String.Format("{0:N2}", doubleVar);
17
ответ дан 3 December 2019 в 13:19
поделиться

В качестве примечания я бы порекомендовал изучить десятичный тип валюты. Это позволяет избежать ошибок округления, из-за которых возникают плавающие числа, но, в отличие от Integer, оно может иметь цифры после десятичной точки.

6
ответ дан 3 December 2019 в 13:19
поделиться

Изучите строки формата , в частности "C" или "N".

double price = 1234.25;
string FormattedPrice = price.ToString("N"); // 1,234.25
5
ответ дан 3 December 2019 в 13:19
поделиться

Это может помочь

    String.Format("{#,##0.00}", 1243.50); // Outputs “1,243.50″

    String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 1243.50); // Outputs “$1,243.50″ 

    String.Format("{0:$#,##0.00;($#,##0.00);Zero}", -1243.50); // Outputs “($1,243.50)″ 

    String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 0); // Outputs “Zero″ 
1
ответ дан 3 December 2019 в 13:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: