2016-09-06 5 views
0

У меня есть два двухместных номера, 4,0 и 4,12345. Я хочу использовать ToString для них, чтобы получить именно это, 4.0 и 4.12345, но по умолчанию ToString обрезает 0 в 4.0, и если я пытаюсь использовать форматы с F/N, я либо должен набивать, либо округлять. Есть ли простое общее решение, которое я могу использовать?Не удаляйте конечный ноль на ToString

Спасибо!

+3

Как вы различаете значимые цифры? Простая двойная структура не может различать между 4.0 и 4.000 – Martheen

+2

'.ToString (" n1 ")' не работает для вас? – stefankmitph

+1

double '4.0' равен' 4', '4.00',' 4.000' и ​​т. Д. 'ToString' не знает, какой из них вы хотите. вы должны использовать форматы. Самый простой способ - не использовать двойники и использовать строку с нуля, и только конвертировать их в двойные, когда это необходимо, например, для расчета. –

ответ

0

Вы можете использовать следующий формат, чтобы преобразовать double в строку.

{0:0.00000} 

Другие нули могут быть добавлены в соответствии с вашими потребностями.

double myNumber = 4.12345; 
var s = string.Format("{0:0.00000}", myNumber); 
Console.WriteLine(s); 

Обновленный код с помощью ToString

double myNumber = 4.12345; 
string s = myNumber.ToString("0.00000"); 
Console.WriteLine(s); 
+1

Это даст '4.00000', а не' 4.0', не так ли? – Rawling

+0

@Rawling, но OP хочет 4.12345 в то же время, так что это единственный выбор. – active92

2

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

double number = 4.12345; 
string s = number.ToString(".0####"); 

Который все еще сохраняет».0' :

double number = 4.0; 
string s = number.ToString(".0####"); 

Вы можете добавьте столько хэшей, сколько хотите цифр.