Nullable & л; десятичное & GT; ToString (& ldquo; D & rdquo;) FormatException [duplicate]

Поле Serial было добавлено в класс Build в уровне API 9 (Android 2.3 - Gingerbread). Документация говорит, что он представляет собой серийный номер оборудования. Таким образом, он должен быть уникальным, если он существует на устройстве.

Я не знаю, действительно ли он поддерживается (= не null) всеми устройствами с уровнем API> = 9.

1
задан Pinch 1 April 2014 в 19:58
поделиться

3 ответа

Еще раз взгляните на ссылку MSDN , несколько разделов выше в том же документе:

"D" или "d"

Десятичный

Результат: Целочисленные цифры с необязательным отрицательным знаком. Поддерживается только интегральными типами. Спецификатор точности: минимальное количество цифр. Спецификатор точности по умолчанию: минимальное количество цифр. Дополнительная информация: Спецификатор формата десятичной («D»).

1234 («D») -> 1234 -1234 («D6») -> -001234

(Emphasis mine)

Если вы хотите, чтобы три цифры в оставили десятичной точки (это то, что «D») с значением типа с плавающей запятой, вы необходимо будет использовать Custom Numeric Format String .

Cost.ToString("000.########");

Но на основании ваших комментариев вы действительно хотите, чтобы справа десятичной , в этом случае строки «F» будут работать:

Cost.ToString("F3");

И если вы беспокоитесь о начале нуля, вы можете сделать это:

Cost.ToString(".000");
7
ответ дан Joel Coehoorn 3 September 2018 в 15:32
поделиться

Вероятно, «Стоимость» - это значение с плавающей запятой. «D» является спецификатором формата «десятичный» и не работает с поплавками. Возможно, что вам нужно в этой статье: http://msdn.microsoft.com/en-us/library/dd260048 (v = vs.110) .aspx

0
ответ дан lewohart 3 September 2018 в 15:32
поделиться

, основанный на вашем комментарии (4.4546 должен отображаться как строка «4.455»), это должно работать:

var cost = 4.4546d;
var ttt = cost.ToString("0.000");
1
ответ дан vlad 3 September 2018 в 15:32
поделиться
Другие вопросы по тегам:

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