`
afareg
  • 浏览: 7922 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

发现google计算器,感觉我的数字大小写转换程序有点意思!

阅读更多


  <SCRIPT LANGUAGE="JScript">
   function CheckValueA()
   {
     var isOk = true;
     if (document.formA.lowA.value.length<1) isOk = false ;
     if (document.formA.highA.value.length<1) isOk = false ;
     if (document.formA.baseA.value.length<1) isOk = false ;
     if (document.formA.perA.value.length<1) isOk = false ;  
     if (!isOk) alert("有效字符:零0 一1壹 二2贰两 三3叁 四4肆 五5伍 六6陆 七7柒 八8捌 九9玖 十拾 分角毛元圆块百佰千仟万萬亿,.,.");  
     return isOk;
    }
   function CheckValueD()
   {
     var isOk = true;
     if (document.formD.lowD.value.length<1) isOk = false ;
     if (document.formD.highD.value.length<1) isOk = false ;
     if (document.formD.baseD.value.length<1) isOk = false ;
     if (document.formD.perD.value.length<1) isOk = false ;  
     if (!isOk) alert("有效字符:零0 一1壹 二2贰两 三3叁 四4肆 五5伍 六6陆 七7柒 八8捌 九9玖 十拾 分角毛元圆块百佰千仟万萬亿,.,.");  
     return isOk;
    }
  </SCRIPT>
 <SCRIPT LANGUAGE="JScript">
   function MoneyCheckValue()
   {
     var qisOk = true;
  var validChar=["零","一","二","三","四","五","六","七","八","九","十","0","1","2","3","4","5","6","7","8","壹","贰","叁","肆","伍","陆","柒","捌","玖","拾","分","角","毛","元","圆","百","佰","千","仟","万","萬","亿",",",".",",","."];
  var validStr="零0 一1壹 二2贰两 三3叁 四4肆 五5伍 六6陆 七7柒 八8捌 九9玖 十拾 分角毛元圆块百佰千仟万萬亿,.,.";
  var tempStr=num.value;
     if (num.value.length<1 || num.value.length>27)
  {  qisOk = false ;}
  else
  {
   for(var i=0;i<tempStr.length;i++)
   {
     if (validStr.indexOf(tempStr.substr(i,1)) == -1)
  {
   qisOk = false;
   alert("非法字符:"+tempStr.substr(i,1));
   break;
  }
    }
  }
    if (!qisOk) alert("有效字符:零0 一1壹 二2贰两 三3叁 四4肆 五5伍 六6陆 七7柒 八8捌 九9玖 十拾 分角毛元圆块百佰千仟万萬亿,.,.");  
     return qisOk;
    }
  </SCRIPT>
  <script  language="vbscript">
 
  function dealErr(eNo)
    Response.Redirect("converErr.asp?errno="&eNo)
  end function 
  dim errNo   
  errNo = 0 
  </script>
 
  <script language="VBScript">
      validStrDel=",,"
      validStrTo1="一壹"
      validStrTo2="二贰两"
   validStrTo3="三叁"
   validStrTo4="四肆"
   validStrTo5="五伍"
   validStrTo6="六陆"
   validStrTo7="七柒"
   validStrTo8="八捌"
   validStrTo9="九玖"
   validStrto0="零"
   validStrHold="0123456789十拾分角毛元圆块百佰千仟万萬亿.."
  function pretreatNum(numStr)
    dim tmpStr
 tmpStr=""
    for i=1 to len(numStr)
   theChar = mid(numStr,i,1)
   if inStr(validStrDel,theChar) then tmpStr=tmpStr
   if inStr(validStrTo1,theChar) then tmpStr=tmpStr & "1"
   if inStr(validStrTo2,theChar) then tmpStr=tmpStr & "2"
   if inStr(validStrTo3,theChar) then tmpStr=tmpStr & "3"
   if inStr(validStrTo4,theChar) then tmpStr=tmpStr & "4"
   if inStr(validStrTo5,theChar) then tmpStr=tmpStr & "5"
   if inStr(validStrTo6,theChar) then tmpStr=tmpStr & "6"
   if inStr(validStrTo7,theChar) then tmpStr=tmpStr & "7"
   if inStr(validStrTo8,theChar) then tmpStr=tmpStr & "8"
   if inStr(validStrTo9,theChar) then tmpStr=tmpStr & "9"
   if inStr(validStrTo0,theChar) then tmpStr=tmpStr & "0"  
   if inStr(validStrHold,theChar) then tmpStr=tmpStr & theChar
 next
    pretreatNum = tmpStr
  end function
 
  valSymbol0="0123456789"
  valSymbol1="分"
  valSymbol2="角毛"
  valSymbol3="元圆块" 
  valSymbol4="十拾"
  valSymbol5="百佰"
  valSymbol6="千仟"
  valSymbol7="万萬"
  valSymbol8="亿"
  valSymbol9=".." 

  function  parseNum(numStr)
    dim tmpStr
    dim tmpArr(28)
 dim wTimes
 dim yTimes
 dim isW 
 dim isY
 dim isTen
 dim isStar
 dim tPos
 dim cPos 
 dim tOff
 tOff = 0
 isStar = 1
 wTimes = 0
 yTimes = 0
 cPos = 2
    for i= 0 to 27
   tmpArr(i)="0"
 next

 for i= len(numStr) to 1 step -1
   theChar = mid(numStr,i,1)
   //0123456789
   if inStr(valSymbol0,theChar) then
    if cPos > 37 then
         dealErr(3)
    end if 
        if cPos =2 then
   isStar = 1
  else
    isStar = 0
  end if 
     if isTen = 1 then
    cPos = cPos -1
       tmpArr(cPos)=theChar
    isTen = 0
  else
    tmpArr(cPos)=theChar
  end if 
    cPos = cPos+1
    tOff = tOff+1  
   end if
   //分
   if inStr(valSymbol1,theChar) then
        isStar = 0  
     if cPos=2 then
       cPos = 0
  else
    dealErr(1)
        end if
  tOff = 0
   end if
   //角
   if inStr(valSymbol2,theChar) then
     isStar = 0
     if tOff<=1 then
    tmpArr(0)=CStr(CInt(tmpArr(0))+CInt(tmpArr(2)))
    tmpArr(2)="0"     
       cPos = 1
        else
    dealErr(1)
  end if
  tOff = 0  
   end if
   //元
   if inStr(valSymbol3,theChar) then
     if tOff<=1 then
    tmpArr(1)=CStr(CInt(tmpArr(1))+CInt(tmpArr(2)))
    tmpArr(2)="0" 
       cPos = 2
    //step0 = 2
  elseif tOff=2 then
    cPos = 2 
  else
    dealErr(1)
  end if   
  tOff = 0
   end if
   //十
   if inStr(valSymbol4,theChar) then
     isStar = 0
     tPos = 1
     cPos = tPos + wTimes*4+yTimes*8+2
     tmpArr(cPos)="1"
  cPos = cPos+1  
  isTen  = 1
  tOff = 0
   end if
   //百
   if inStr(valSymbol5,theChar) then
     tPos = 2
     cPos = tPos+ wTimes*4+yTimes*8+2    
  if isStar=1 then
    tmpArr(cPos-1)=tmpArr(2)
    tmpArr(2)="0"  
  end if
  isStar = 0
  tOff = 0
   end if
   //千
   if inStr(valSymbol6,theChar) then    
     tPos = 3
     cPos = tPos+ wTimes*4+yTimes*8+2
  if isStar=1 then  
    tmpArr(cPos-1)=tmpArr(2)
    tmpArr(2)="0"  
  end if   
  isStar = 0
  tOff = 0
   end if
   //万
   if inStr(valSymbol7,theChar) then     
      tPos = 0
   isW = 1
   wTimes = wTimes +1  
     cPos = tPos+ wTimes*4+yTimes*8+2
  if isStar=1 then
    tmpArr(cPos-1)=tmpArr(2)
    tmpArr(2)="0"  
  end if     
  isStar = 0 
  tOff = 0
   end if
   //亿
   if inStr(valSymbol8,theChar) then
      isStar = 0
      tPos = 0
   if isW=1 then
     isW=0
     wTimes = wTimes -1
   end if  
   yTimes = yTimes +1
   cPos = tPos+ wTimes*4+yTimes*8+2 
   tOff = 0
   end if 
   //.
   if inStr(valSymbol9,theChar) then
      if wTimes=0 and yTimes=0 then isStar = 1
   for j=0 to tOff
     cPos = j+ tPos+ wTimes*4+yTimes*8+2 
     if cPos-tOff>=0 then
       tmpArr(cPos-tOff)=CStr(CInt(tmpArr(cPos-tOff))+CInt(tmpArr(cPos)))
       tmpArr(cPos)="0" 
     else
       dealErr(2)
     end if 
   next 
   tOff = 0
   cPos = tPos+ wTimes*4+yTimes*8+2 
   end if               
 next
 for i=  27 to 0 step -1
  if tmpArr(i) <> "0" then
    iStar = i
    exit for
  end if
 next
 if iStar<2 then
   dealErr(4)
 end if
 for i=0 to iStar
   if i=1 then
     tmpStr ="." & tmpArr(i) & tmpStr
   else
     tmpStr = tmpArr(i) & tmpStr
   end if
 next 
 parseNum = tmpStr
  end function
 
  function toDbl(numStr)
   dim tmpStr
   tmpStr = CDbl(numStr)
   toDbl = tmpStr
  end function
 
  function toPrn0(numStr)
   dim tmpStr
   dim M3
   tmpStr=""
   M3 = 0
   for i = len(numStr) to 1 step -1
      if ((M3-2) mod 3)=0 and M3-2<>0 and i<>1 then
     tmpStr = ","&mid(numStr,i,1) & tmpStr 
   else
     tmpStr = mid(numStr,i,1) & tmpStr
   end if
   M3 = M3+1
   next
   toPrn0 = tmpStr
  end function 
 
  function toPrn1(numStr)
   dim tmpStr
   dim perStr
   dim M8
   M8=0
   dim valP0
   dim valP1
   perStr = ""
   valP = "拾佰仟万拾佰仟亿"
   for i = len(numStr) to 1 step -1
   //小写转打写
      tmpChar=mid(numStr,i,1)
      select case tmpChar
    case "0"
      perStr="零" & perStr
    case "1"
      perStr="壹" & perStr
    case "2"
      perStr="贰" & perStr
    case "3"
      perStr="叁" & perStr
    case "4"
      perStr="肆" & perStr
    case "5"
      perStr="伍" & perStr
    case "6"
      perStr="陆" & perStr
    case "7"
      perStr="柒" & perStr
    case "8"
      perStr="捌" & perStr
    case "9"
      perStr="玖" & perStr
    case "."
      perStr="圆" & perStr
   end select
   next
   for i = len(perStr) to 1 step -1
      M8 = M8 + 1
   if M8=1 then
    tmpStr =mid(perStr,i,1) & "分" & tmpStr
   elseif M8=2 then
    tmpStr =mid(perStr,i,1) & "角" & tmpStr
   elseif M8=3 then
    tmpStr =mid(perStr,i,1) & tmpStr
   elseif M8=4 then
    tmpStr =mid(perStr,i,1) & tmpStr
   else
    t=((M8-4) mod 8)
    if t=0 then
      t=8
    end if 
    tmpStr =mid(perStr,i,1) & mid(valP,t,1) & tmpStr  
   end if 
   next
   toPrn1 = tmpStr
  end function 
 
  function calculate(low,numStr,base,per)
   dim tmpStr
   tmpStr = (CDbl(numStr)-CDbl(low))*CDbl(per)+CDbl(base)
   tmpStr = FormatNumber(tmpStr,2)
   calculate=tmpStr   
  end function
  </script>
  <script language="vbscript">
  function show
    MoneyCheckValue()'遗憾
    document.write(toPrn0(toDbl(parseNum(pretreatNum(num.value)))))
  end function
  </script> 
  <input name="num" type="text" value="447"><input name="submit" type="button" onClick="vbscript:show">
 



分享到:
评论

相关推荐

    Android studio写的计算器小程序

    在Android Studio中开发一个计算器小程序是一项基础且实用的Android应用开发任务。这个小程序能够执行基本的数学运算,包括加法、减法、乘法和除法。以下将详细阐述涉及的知识点,以及如何使用Android Studio来创建...

    BMI_flutter_calc-master:BMI计算器源码,用flutter写的完成项目

    BMI_flutter_calc-master 是一个使用Flutter框架开发的BMI(身体质量指数)计算器的完整源代码项目。Flutter是由Google推出的开源UI工具包,用于构建高性能、高保真度的原生移动应用,支持Android和iOS平台。这个...

    计算器:每个程序员都应拥有自己的计算器版本。 否则,您将在IT行业的世界中感到羞辱。 这是我用Qt用C ++编写的Google门票

    首先,C++是一种静态类型的、编译式的、通用的、大小写敏感的、不仅支持面向过程的编程,也支持面向对象的编程的编程语言。C++以其高效性和灵活性深受程序员喜爱,是构建桌面应用、游戏引擎和服务器端软件等的常用...

    google android sdk开发范例大全 第二版 PDF 光盘代码

    google android sdk开发范例大全 第二版 PDF 和 随书光盘代码 ISBN:9787115229649 目录 第1章 了解、深入、动手做   1.1 红透半边天的Android   1.2 本书目的及范例涵盖范围   1.3 如何阅读本书 ...

    喜雅乐管理软件

    三:程序内置谷歌翻译代码,可将全世界不同的语言全翻译成中文 四:程序内置多功能记事本 1.可自动记忆文本颜色和字体大小,无需要你每次都去设置。 2.记事本加密功能,本加密功能可设置成只准许在本机上凭密码...

    arcgis工具

    如果搜索不需要区分大小写,可以使用SQL函数将所有的值都转换成大写或者小写。对于基于文件的数据源,例如shape文件或coverages,既可以使用UPPER函数,也可以使用LOWER函数。 例如下面这个查询将选出那些姓名的...

    程序天下:JavaScript实例自学手册

    第1章 页面特效 ...1.2 页面自动最大化 1.3 页面自动刷新 ...22.10 用JavaScript调用Google AdSense 22.11 Ajax效果:可拖拽的表格 22.12 JavaScript调用Web Service 22.13 用JavaScript实现编码解码 22.14 创建带属性...

    《程序天下:JavaScript实例自学手册》光盘源码

    22.10 用JavaScript调用Google AdSense 22.11 Ajax效果:可拖拽的表格 22.12 JavaScript调用Web Service 22.13 用JavaScript实现编码解码 22.14 创建带属性的对象 22.15 用prototype实现JavaScript的继承 22.16 ...

    JAVA上百实例源码以及开源项目源代码

    Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,系统相关,数字签名,数字证书 Java 数字签名、数字证书的相关实例。 关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用...

    计算机应用技术(实用手册)

    Phoenix-award workstation BIOS V6.00PC,An Energy star Ally copyright(c) 1984-2003,Phoenix Technologies,LTD 这句英语的意思是:Phoenix-award这两家COMS芯片开发公司合并后共同开发第6号BIOS版本,采用美国...

    JavaScript实用范例词典04-14

    6.4 英文字母大小写转换... 155 6.5 取得字符串中指定位置的字符... 156 6.6 取得指定Unicode值所表示的 字符... 157 6.7 搜索字符串... 158 6.8 从右至左搜索字符串... 159 6.9 撷取部分字符串... 160 6.10 ...

    java开源包1

    GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的...

    java开源包11

    GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的...

    java开源包2

    GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的...

    java开源包3

    GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的...

    java开源包6

    GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的...

    java开源包5

    GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的...

    java开源包10

    GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。 Java的...

Global site tag (gtag.js) - Google Analytics