在线工具使用说明:
这里是num2dx函数,将如下代码复制粘贴到R控制台后,就可以使用此函数。比如:
num2dx(100)
dw <- c("分", "角", "圆","拾","佰","仟", "万", "拾万","佰万","仟万", "亿", "拾亿","佰亿","仟亿", "兆", "十兆", "佰兆","仟兆","万兆", "十万兆", "佰万兆", "仟万兆", "亿兆") dx <- c("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖") names(dx) <- 0:9 num2dx <- function(x){ if(x > 140720000000000){ print("The results may be not precise") } sz <- strsplit(sprintf("%024.2f", x), "")[[1]] sz <- sz[sz !="."] dxsz <- paste(dx[sz], rev(dw), sep="") dxsz[grepl("零圆", dxsz)] <- "圆" dxsz[grepl("零", dxsz)] <- "零" WZi <- grep("万兆", dxsz) NWZ <- length(WZi) if(NWZ > 1) dxsz[WZi[-NWZ]] <- gsub("万兆", "兆", dxsz[WZi[-NWZ]]) Zi <- grep("兆", dxsz) NZ <- length(Zi) if(NZ > 1) dxsz[Zi[-NZ]] <- gsub("兆", "", dxsz[Zi[-NZ]]) Yi <- grep("亿", dxsz[9:13]) NY <- length(Yi) if(NY > 1) dxsz[9:13][Yi[-NY]] <- gsub("亿", "", dxsz[9:13][Yi[-NY]]) Wi <- grep("万", dxsz[14:17]) NW <- length(Wi) if(NW > 1) dxsz[14:17][Wi[-NW]] <- gsub("万", "", dxsz[14:17][Wi[-NW]]) dxszr <- rev(dxsz) if(dxszr[3] != "圆"){ if(dxszr[1] == "零" & dxszr[2] == "零"){ dxsz <- rev(dxszr[-(1:2)]) dxsz <- paste(c(dxsz, "整"), collapse="") } else if(dxszr[1] == "零" & dxszr[2] != "零") { dxsz <- rev(dxszr[-1]) dxsz <- paste(c(dxsz, "整"), collapse="") } else if(dxszr[1] != "零" ) { dxsz <- rev(dxszr) dxsz <- paste(dxsz, collapse="") } } else if(dxszr[3] == "圆"){ if(dxszr[1] == "零" & dxszr[2] == "零"){ dxsz <- rev(dxszr[-(1:2)]) dxsz <- paste(c(dxsz, "整"), collapse="") } else if(dxszr[1] == "零" & dxszr[2] != "零") { dxsz <- rev(c(dxszr[2], "零", dxszr[3:length(dxszr)])) dxsz <- paste(c(dxsz, "整"), collapse="") } else if(dxszr[1] != "零" ) { dxsz <- rev(c(dxszr[1:2], "零", dxszr[3:length(dxszr)])) dxsz <- paste(dxsz, collapse="") } } for(i in 1:25){ dxsz <- gsub("零零", "零", dxsz) } dxsz <- gsub("零圆", "圆", dxsz) dxsz <- gsub("^零", "", dxsz) dxsz <- gsub("^圆零", "", dxsz) if(dxsz=="圆整") dxsz = "" return(dxsz) }
本网页已被访问4630次。