如何使用vbscript处理大数

如何使用vbscript处理大数,vbscript,types,Vbscript,Types,我正在为金融应用程序的自动测试创建脚本 使用VbScript作为语言 需要使用大浮点数(超过100亿)进行操作-进行加法、乘法等操作。但是vbscript没有用于大数字的数据类型 请告诉我这个问题的任何解决方案或解决方法 也许有人以前遇到过这个问题 谢谢 尝试使用十进制数据类型: VBScript有一些用于大数字的数据类型。在您的情况下,可能需要使用Double。 这里有一个概述:使用它: function mmod(a,moduloValue) dim k,t k=CDbl(a)

我正在为金融应用程序的自动测试创建脚本

使用VbScript作为语言

需要使用大浮点数(超过100亿)进行操作-进行加法、乘法等操作。但是vbscript没有用于大数字的数据类型

请告诉我这个问题的任何解决方案或解决方法

也许有人以前遇到过这个问题


谢谢

尝试使用十进制数据类型:

VBScript有一些用于大数字的数据类型。在您的情况下,可能需要使用Double。 这里有一个概述:

使用它:

function mmod(a,moduloValue)
  dim k,t
  k=CDbl(a)
  t=Fix(k/moduloValue)
  mmod = k-(t*moduloValue)
end function

msgbox mmod(4010051786300000078934,1024)
产出:86

msgbox mmod(4010051786300000078934,2)

输出:0

@Rob的链接很好,但他选择的数据类型很危险。使用内部由固定点数表示的货币类型

如果您需要超过4个小数点,则您将面临以下任一情况:

  • 需要更改语言(Java、C#和其他支持使用BigDecimal等名称的数据类型,这些名称比较合适,并且可能具有更好的精度)
  • 我强烈建议不要编写自定义库(它需要防水,否则您仍然会损坏数据)

二进制浮点数不能准确地表示十进制数,最终可能会出现舍入错误,使数据无效。查看是否需要详细信息。

我认为VBScript没有那种数据类型。。。您的链接描述的是Visual Basic数据类型,而不是VBScript。谢谢您的回答。您可以通过在编辑器中选择代码并按Control-K(或单击小10010按钮)来格式化代码。不清楚该函数应该做什么。因为这只是一个函数,它不可能完成所有要求的任务。但最重要的是,我注意到参数a被转换为浮点,并且。。。永远不要对财务数据使用浮点数!!!!!我知道这是一篇老文章,但如何在经典ASP中显示非常大的数字?它们似乎都转换成了E符号,非常烦人!如果它是如此严重,它应该得到一个上限锁定,你能告诉我们为什么吗?@ulu看到我对这个问题的回答如下。基本上,典型的“float”和“double”类型将数字存储为原始二进制数据。以10为基数的数字具有精确的以10为基数的表示形式,并且具有重复的二进制表示形式(例如,0.1d->0.000110011…b);这些重复的分数被四舍五入,当您有大量操作(事务)时,四舍五入会导致错误累积。“货币”类型存储为基数为10(十进制)的数字,因此可以解决这个问题(折衷是它们更大、更慢)。“真实”会计/税务/财务软件必须使用货币类型。