怎样在VB中定义一个和Pascal中Real一样的数据类型

miaomiao820 2005-10-21 07:47:13
要移植Pascal程序,其中所有实数类型几乎都是Real,不管用Single,还是Double和原先Pascal程序出来的结果都有较大误差。请问怎么定义一个实数数据类型,正数包含12位有效数字,负数包含11位有效数字。多出部分四舍五入
...全文
303 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
faysky2 2005-11-08
  • 打赏
  • 举报
回复
Currency 数据类型

Currency 变量存储为 64 位(8 个字节)整型的数值形式,然后除以 10,000 给出一个定点数,其小数点左边有 15 位数字,右边有 4 位数字。这种表示法的范围可以从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807。Currency 的类型声明字符为at号 (@)。

Currency 数据类型在货币计算与定点计算中很有用,在这种场合精度特别重要。
----------------------------------------------------------------------------------
Single 数据类型

Single(单精度浮点型)变量存储为 IEEE 32 位(4 个字节)浮点数值的形式,它的范围在负数的时候是从 -3.402823E38 到 -1.401298E-45,而在正数的时候是从 1.401298E-45 到 3.402823E38。Single 的类型声明字符为感叹号 (!)。
-----------------------------------------------------------------------------------
Double 数据类型

Double(双精度浮点型)变量存储为 IEEE 64 位(8 个字节)浮点数值的形式,它的范围在负数的时候是从 -1.79769313486232E308 到 -4.94065645841247E-324,而正数的时候是从 4.94065645841247E-324 到 1.79769313486232E308。Double 的类型声明字符是数字符号 (#)。
------------------------------------------------------


你比较了一下,看哪种比较符合你的要求,然后用Round函数进行四舍五入

********************************
Round函数

描述

返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

语法

Round(expression [,numdecimalplaces])

Round函数语法有如下几部分:

部分 描述
expression 必需的。要进行四舍五入运算的数值表达式。
numdecimalplaces 可选的。数字值,表示进行四舍五入运算时,小数点右边应保留的位数。如果忽略,则Round函数返回整数。




miaomiao820 2005-11-08
  • 打赏
  • 举报
回复
Pascal怎么移植成Delphi的DLL?
northwolves 2005-11-08
  • 打赏
  • 举报
回复
double + format
province_ 2005-10-21
  • 打赏
  • 举报
回复
他要的是浮点运算,超大数除法一般是获得商和余数。
楼主为什么不看看PASCAL对REAL的定义是怎么样的,占几个BYTE,再看和VB里哪种浮点类型最接近,就用哪种吧。移植可不仅仅是变量的事情,你的代码部分才是关键。
rainstormmaster 2005-10-21
  • 打赏
  • 举报
回复
如果对精度要求特别高的话,可以考虑用字符串(类似于超大数运算),另一个思路是把程序先移埴到delphi上,生成dll供vb调用(如果一定要用vb的话)

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧