Преобразовать целое число в строку с разделителями запятой [duplicate]

Чтобы избежать этой проблемы, используйте nextLine(); сразу после nextInt();, поскольку это помогает очистить буфер. Когда вы нажимаете ENTER, nextInt(); не захватывает новую строку и, следовательно, позже пропускает код Scanner.

Scanner scanner =  new Scanner(System.in);
int option = scanner.nextInt();
scanner.nextLine(); //clearing the buffer
70
задан Michael Currie 9 September 2015 в 23:16
поделиться

3 ответа

Вы можете попробовать любой формат или prettyNum, но обе функции возвращают вектор символов. Я использовал бы это только для печати. ​​

> prettyNum(12345.678,big.mark=",",scientific=FALSE)
[1] "12,345.68"
> format(12345.678,big.mark=",",scientific=FALSE)
[1] "12,345.68"

EDIT: Как говорит Майкл Чирико в комментарии:

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

> prettyNum(c(123,1234),big.mark=",")
[1] "  123" "1,234"

Добавьте trim=TRUE в format или preserve.width="none" в prettyNum, чтобы предотвратить это:

> prettyNum(c(123,1234),big.mark=",", preserve.width="none")
[1] "123"   "1,234"
> format(c(123,1234),big.mark=",", trim=TRUE)
[1] "123"   "1,234"
95
ответ дан Joris Meys 23 August 2018 в 21:44
поделиться

См. ?format:

> format(1e6, big.mark=",", scientific=FALSE)
[1] "1,000,000" 
>   
27
ответ дан Dirk Eddelbuettel 23 August 2018 в 21:44
поделиться

Остальные ответы опубликованы, очевидно, работают, но я всегда использовал

library(scales)    
comma_format()(1000000)
6
ответ дан MatthewR 23 August 2018 в 21:44
поделиться
Другие вопросы по тегам:

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