2015-08-01 2 views
-5

Я пытаюсь получить все десятичные знаки с тремя цифрами в них с циклом while, пока он не достигнет 1,00.Как мне получить десятичные числа от 0 до 1?

Подобно:

0,00

0,01

0,02

0,03

и так далее.

Любая помощь приветствуется!

+0

Просто прочитайте [Формат пользовательских номеров] (https://msdn.microsoft.com/en-us/library/0c899ak8 (v = vs.110) .aspx) –

ответ

-1

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

for (double i = 0; i <= 1; i += 0.01) 
{ 
    i = Math.Round(i, 2); 

    Console.WriteLine(i); 
} 

Хорошие отзывы в комментариях. Это должно привести вас туда. Наверное, не самый чистый подход.

+0

Вам также нужно включить 'i = 1.0', за операцию _OP_. – ja72

+2

Это не на 100% отлично, поскольку цифры типа '0.01' не могут быть представлены точно в' double'. –

+0

Последние строки возврата 0,8 0,810000000000001 0,820000000000001 0,830000000000001 0,840000000000001 0,850000000000001 0,860000000000001 0,870000000000001 0,880000000000001 0,890000000000001 0,900000000000001 0,910000000000001 0,920000000000001 0,930000000000001 0,940000000000001 0,950000000000001 0,960000000000001 0,970000000000001 0,980000000000001 0.990000000000001 – trashfight

-2
for(int i=0; i<=100; i++) 
{ 
    Console.WriteLine(string.Format("{0:F2}",i/100.0)); 
} 
+0

Почему downvote? – ja72

+0

Не мой dv, но op запросил цифры, в частности, для десятичных знаков, а не строк. – TaW

4

Как @Mitch рекомендовал в своем комментарии, вы должны использовать decimal примитивный тип:

for (decimal i = 0m; i <= 1; i += 0.01m) 
{ 
    Console.WriteLine(i); 
} 

Если вы хотите числовой реальное буквальный следует рассматривать как decimal, вам нужно использовать суффикс m или M. Без суффикса m номер обрабатывается как double и генерирует ошибку компилятора.

Смежные вопросы