反转 R 中的数字

Enc*_*her 3 r while-loop

我在 R 中编写了一个代码来反转一个数字。但我得到了inf作为输出。

digit<-512
rev_num<-0
while(digit>0){
  rev_num=rev_num*10 + digit %% 10
 digit=digit / 10
}
print(paste(rev_num))
Run Code Online (Sandbox Code Playgroud)

谁能告诉我这段代码中的错误?

chi*_*n12 5

您需要digit = digit %/% 10代替/where%/%用于整数除法。并且您需要整数除法,因为 using/给出剩余小数位,并且您的 while 循环不会停止,直到数字达到您的机器可以表示的最小数字,而您的 rev_num 在每次迭代中保持 10 的倍数增长,达到 Inf。


Ron*_*hah 5

速战速决你的方法将增加floordigit10分的时候。

digit<-512
rev_num<-0

while(digit>0){
  rev_num=rev_num*10 + digit %% 10
  digit= floor(digit / 10)
}

rev_num
#[1] 215
Run Code Online (Sandbox Code Playgroud)

里面也有stri_reverse功能stringi

stringi::stri_reverse(512)
#[1] "215"
Run Code Online (Sandbox Code Playgroud)