Я пытаюсь получить все десятичные знаки с тремя цифрами в них с циклом while, пока он не достигнет 1,00.Как мне получить десятичные числа от 0 до 1?
Подобно:
0,00
0,01
0,02
0,03
и так далее.
Любая помощь приветствуется!
Я пытаюсь получить все десятичные знаки с тремя цифрами в них с циклом while, пока он не достигнет 1,00.Как мне получить десятичные числа от 0 до 1?
Подобно:
0,00
0,01
0,02
0,03
и так далее.
Любая помощь приветствуется!
Вы должны отправить то, что ты уже пробовал, но это должно получить Вас там:
for (double i = 0; i <= 1; i += 0.01)
{
i = Math.Round(i, 2);
Console.WriteLine(i);
}
Хорошие отзывы в комментариях. Это должно привести вас туда. Наверное, не самый чистый подход.
Вам также нужно включить 'i = 1.0', за операцию _OP_. – ja72
Это не на 100% отлично, поскольку цифры типа '0.01' не могут быть представлены точно в' double'. –
Последние строки возврата 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
Как @Mitch рекомендовал в своем комментарии, вы должны использовать decimal
примитивный тип:
for (decimal i = 0m; i <= 1; i += 0.01m)
{
Console.WriteLine(i);
}
Если вы хотите числовой реальное буквальный следует рассматривать как decimal
, вам нужно использовать суффикс m
или M
. Без суффикса m
номер обрабатывается как double
и генерирует ошибку компилятора.
Просто прочитайте [Формат пользовательских номеров] (https://msdn.microsoft.com/en-us/library/0c899ak8 (v = vs.110) .aspx) –