у меня есть,
double d = 0.005; d = d/100; string str = Convert.ToString(d); output of str = 5E-05
Но мне нужен вывод как 0,00005 При преобразовании в строку 0.00005 становится 5E-05.
Как я могу решить это?
Вы хотите указать формат для преобразования двойного в строку.Double.ToString не позволяет вам сделать это (используется научная запись), поэтому вместо него следует использовать String.Format.
Double.ToString
String.Format
Вот ваш обновленный код:
string str = String.Format("{0:0.#####}", 0.00005);
На самом деле Double.ToString фактически использует String.Format под капотом.См. Эту ссылку для получения дополнительной информации: Документы MSDN о Double.ToString
Дополнительные примеры String.Format см. По следующей ссылке: Примеры использования String.Format
Вам нужен IFormatProvider:
http://www.csharp -examples.net / iformatprovider-numbers / http://msdn.microsoft.com/en-us/library/7tdhaxxa.aspx
РЕДАКТИРОВАТЬ: Приведенный выше плакат даетвам больше подробностей.
using System; namespace test1{ class MainClass { public static void Main (string[] args) { double d = 0.005; d = d/100; string str = String.Format("{0:0.#####}",d); Console.WriteLine ("The double converted to String: "+str); } } }
Это должно скомпилировать и показать, что вы хотите.
Это не может быть более ясным, чем это
Редактировать: Для более конкретных примеровсмотрите здесь: `
http://www.csharp -examples.net / string-format-double /
`
Я нашел решение:
string str = d.ToString("F99").TrimEnd("0".ToCharArray());
Работает нормально.Но что именно это делает, я не знаю.Это работает для динамического двойного значения.
Спасибо за вас обоих, кто ответил.