用户工具

侧边栏

站点工具

您的足迹: • dx

金额大写转小写

在线工具

在线工具使用说明:

  1. 单位为元,精确到分,小数点后只取到2位,自己先做好舍入。
  2. 自己检查一下转换的结果是否准确
  3. 过于巨大的数字(超过140720000000000)可能不准确。
  4. 这里采用的是万亿为兆的说法。

所使用的R语言代码如下:

这里是num2dx函数,将如下代码复制粘贴到R控制台后,就可以使用此函数。比如:

num2dx(100)

num2dx
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次。


页面工具

Powered by DokuWiki | ©2018-8102 Hong Wang | 桂ICP备18010616号 | 桂公网安备 45010302002017号