Использование нескольких вариантов копирования для файловой системы :: copy в C ++

Форматирование строк в python 2.x должно сделать это для вас:

>>> print '%.2f' % 315.15321531321
315.15

Это ограничивает представление строки всего двумя десятичными знаками. Обратите внимание, что если вы используете round(315.153215, 2), вы получите другое значение float, которое естественно неточно (или переоценено, в зависимости от того, как вы его смотрите):

>>> round(315.15321531321, 2)
315.14999999999998

Технически round() является правильным, но он не «усекает» результаты по вашему запросу в 315.15. Кроме того, если вы округлите значение, подобное 315.157, оно будет создавать нечто более близкое к 315.16 ... не уверен, что это то, что вы подразумеваете под «усечением».

1
задан Isak 18 January 2019 в 14:48
поделиться

2 ответа

Используя предоставленный вами опорный сайт, прямо над константой определено, что

Может присутствовать не более одного варианта копирования в каждой из следующих групп параметров, в противном случае поведение функций копирования не определено.

Таким образом, вы можете просто делать то, что говорят все остальные, и / или два значения вместе, поскольку они принадлежат к разным группам опций.

0
ответ дан Sam P 18 January 2019 в 14:48
поделиться

Это битовые флаги, поэтому

filesystem::copy(pathInput, pathOutput, filesystem::copy_options::recursive | filesystem::copy_options::overwrite_existing)

Чтобы добавить дополнительную детализацию, на более низком уровне каждый флаг представляет собой бит (вкл / выкл) в целом числе, так что ...

01 = перезаписать 10 = рекурсивно 11 = оба 00 = нет

the | оператор является двоичным или равен true, если один из бит (или оба) имеет значение true, поэтому:

01 | 10 = 11

00 | 11 = 11

11 | 11 = 11

00 | 00 = 00

0
ответ дан Prodigle 18 January 2019 в 14:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: