2015-01-20 2 views
2

Я занимаюсь своим проектом C# в школе, и мне нужна помощь, мне нужно создать случайное число от 0,00 до 1,00 до матрицы размером 5 * 5.Круглый номер от 0,1 до 0,10

double[,] matrix = new double[5, 5]; 

for (int i = 0; i < 5; i++) 
{ 
    for (int j = 0; j < 5; j++) 
    { 
     matrix[i, j] = (rand.Next(0, 100 + 1)/100.0); 
     Console.Write(" {0}", matrix[i, j]); 
    } 

    Console.WriteLine(); 
} 

Console.ReadKey(); 

Но когда я пишу эти цифры, некоторое число отображается как 0,1, и я хочу написать его как 0.10, как?

+3

1 не округлять, 2. использовать отформатированный вывод или форматированный 'ToString' – crashmstr

+1

. Вы знаете о' Random.NextDouble() 'или хотите только приращения 1/100 в вашей матрице? – ja72

+0

@ TheZerda, пожалуйста, примите ответ. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – Andrew

ответ

2

Но когда я пишу эти цифры, некоторые цифры показывают, как 0,1, и я хочу, чтобы написал его как 0.10, как?

Затем вам нужно сделать использование ToString("N2");

Console.Write(" {0}", matrix[i, j].ToString("N2")); 
+1

'#' не является обязательным. '0' является обязательным, поэтому, я думаю, вы имели в виду' 0,00'. – Andrew

+0

О, благодарю вас, это работает! – TheZerda

+0

@ TheZerda вы приветствуете чувака. Я рад, что помог. – Christos

1

Если быть более точным для десятичных знаков, в случае, если вы хотите изменить к более или менее точно позже ...

String.Format("{0:0.00}", matrix[i, j]); 
+1

Просто изменив номер рядом с 'N', вы можете получить необходимую точность. ;) Как в 'Console.Write (" {0: N9} ", матрица [i, j]);'. – Andrew

+0

Я думал, что это даст больше гибкости для культур, которые используют вместо них. как удерживать числовые разделители, но, похоже, это происходит автоматически в String.Format для текущей установленной культуры. Я дал оранжевую стрелу от ответа Христоса. –

+0

Да. Если вы поместите запятую вместо точки, она будет рассматривать ее как разделитель тысяч и, следовательно, использовать ее, а не заменять отображаемый символ. Я думаю, вам нужно использовать 'string.Format' и' IFormatProvider', если вы хотите использовать определенную культуру. – Andrew