VisualFreeBasic内置库_超大数值类型

2026-1-21 / 0 评论 / 70 阅读

BigFloat 大浮点数
超大浮点数的数据类型。以二进制方式储存数据。
DecFloat 大浮点数
超大浮点数的数据类型。以十进制方式储存数据。

说明

这是扩展数字类型,提供超大数计算。
这是超大数值类型,可以指定储存位数。
有 DecFloat 和 BigFloat 两种,来自开源代码:https://github.com/srvaldez/FreeBASIC-Projects
两种功能相同,一个软件不可以同时使用这两种类型,只可以选择一种,不然就发生扩展库冲突。
两种的储存方式不同,应用场景不同,根据自己软件需要使用。
一般我们用 DecFloat ,更适合普通人使用和显示输出,

使用方法

  • BigFloat 大浮点数
Const NUMBER_OF_DIGITS = 128  '必须放在引用库之前,设置最大储存位数,默认128位,删除此行就是128位。位数越多,占用内存越多,计算数值时占CPU和耗时越大
#include Once "inc\BigFloat.bi"
   Dim pi As Bigfloat = "3.1415926535897932384626433832795" '超大数值赋值,只能用字符,当然也支持普通数字赋值。
   Dim bignum As Bigfloat = pi  / 180 *30 
   Dim bigcos As Bigfloat = Cos(bignum) +1000
   Print bigcos.toString
  Print bigcos.toString(32)
   Print bigcos.toLong
   Print bigcos.toDouble
  • DecFloat 大浮点数
Const NUMBER_OF_DIGITS = 128  '必须放在引用库之前,设置最大储存位数,默认128位,删除此行就是128位。位数越多,占用内存越多,计算数值时占CPU和耗时越大
#Include Once  "inc\DecFloat.bi" 
  Dim pi As decfloat = "3.1415926535897932384626433832795"  '超大数值赋值,只能用字符,当然也支持普通数字赋值。
   Dim bignum As decfloat = pi  / 180 *30 
   Dim bigcos As decfloat = Cos(bignum) +1000
   Print bigcos.toString
   Print bigcos.toString_exp
   Print bigcos.toString_fix
   Print bigcos.toLong
   Print bigcos.toDouble
   Print bigcos.toLongint

计算出 π ,

你可以设定计算出多少位,比方 1万位等,不过计算太多,会很慢,输出显示也是个问题。

DecFloat #Include Once  "inc\DecFloat.bi"  '2种大数都可以
   Dim pi As decfloat
   pi.dec_num = pi_brent_salamin(位数)
   Print pi.toString

计算自然数 e

   Dim e As decfloat = 1, j As decfloat = 1
   Dim i As Long     
   For i = 1 To 300 ’计算位数         
         j *= i     
         e += 1 / j   
    Next

评论一下?

OωO
取消