На цьому сторінка він говорить:
Специфікатор "00" викликає округлення значеннядо найближчої цифри, що передує десятковій, де завжди використовується округлення від нуля. Наприклад, форматування 34,5 з "00" призведе до значення 35.
"00" - це окремий випадок чи приклад? Чому це конкретно виділено?
Що таке режим округлення форматів, окрім "00"? Він конкретно згадує ціле ціле округлення; як щодо округлення після п яти знаків після коми?
Що робить ToString ("0")? Це те саме, що і "00", але немає округлення?
Я спробував ToString ("00"), і він дав мені нульове число, де я очікував лише одну цифру.
Відповіді:
5 за відповідь № 1"00" - це не окремий випадок, а лише приклад, хоча так, як його викладено, це звучить як окремий випадок.
З документації:
Спеціальний специфікатор формату "0" служить асимвол нульового заповнення. Якщо значення, яке відформатоване, має цифру в позиції де нуль відображається у рядку формату, ця цифра копіюється в рядок результатів; інакше в рядку результатів з’являється нуль. The положення крайнього лівого нуля перед десятковою комою та крайній правий нуль після десяткової крапки визначає діапазон цифр які завжди присутні в рядку результатів.
Тож ToString ("00") означає, що у вас буде мінімум з двох цифр ліворуч від десяткової коми і НІ цифр праворуч від десяткової крапки (ці округлюються). Так само ToString ("000") дасть вам мінімум 3 цифри тощо.
Ви також можете керувати точно кількість цифр, яка з’явиться праворуч віддесяткової крапки. ToString ("000.00") дасть вам щонайменше 3 цифри ліворуч від десяткової крапки і точно 2 цифри праворуч. Будь-які додаткові цифри праворуч від десяткової коми будуть округлені.
Ось кілька проголошених тверджень для демонстрації:
var value = 67.89;
Assert.AreEqual("68", value.ToString("0"));
Assert.AreEqual("68", value.ToString("00"));
Assert.AreEqual("068", value.ToString("000"));
Assert.AreEqual("067.9", value.ToString("000.0"));
Assert.AreEqual("067.89", value.ToString("000.00"));
Assert.AreEqual("067.890", value.ToString("000.000"));
1 для відповіді № 2
Мені це схоже на помилку в документації, їхні приклади показують це як прокладений цілий вихід.
int.ToString("format")
Є еквівалентом
string.Format("0:format", int)