源:Delphi Math里的基本函数,以及浮点数比较函数

Delphi里的好东西太多,多到让人觉得烦。这种感觉就是当年打游戏《英雄无敌3》,改了钱以后,有钱了每天都要造建筑,明明是好事,可是让人觉得烦。

先记录下来,以后再回来加强对Math单元的研究,不必再自己发明函数去比较浮点数了~

1.Ceil

function Ceil(const X: Extended):Integer;:按正无穷大方向四舍五入一个变量。例如:

Ceil(-2.8) = -2;
Ceil(2.8) = 3;
Ceil(-1.0) = -1;  

3.Floor

function Floor(const X: Extended): Integer;:按负无穷方向四舍五入一个变量。例如:

Floor(-2.8) = -3;
Floor(2.8) = 2;
Floor(-1.0) = -1; 

3. CompareValue

function CompareValue(const A, B: Integer): TValueRelationship; overload;

function CompareValue(const A, B: Int64): TValueRelationship; overload;

function CompareValue(const A, B: Single; Epsilon: Single = 0): TValueRelationship; overload;

function CompareValue(const A, B: Double; Epsilon: Double = 0): TValueRelationship; overload;

function CompareValue(const A, B: Extended; Epsilon: Extended = 0): TValueRelationship; overload;

比较A、B两个变量的关系。如果A<B,则返回值为-1;如果A=B,则返回值为0;如果A>B,则返回值为1;其中A、B只能为Integer、Int64、Single、Double、Extended表达式。

4. EnsureRange

function EnsureRange(const AValue, AMin, AMax: Integer): Integer; overload;

function EnsureRange(const AValue, AMin, AMax: Int64): Int64; overload;

function EnsureRange(const AValue, AMin, AMax: Double): Double; overload;

返回确保在某一范围内的值。如果AValue<AMin,则返回AMin;如果AValue>AMax,则返回AMax;其返回值只能为Integer、Int64、Double类型的值。

5. InRange

function InRange(const AValue, AMin, AMax: Integer): Boolean; overload;

function InRange(const AValue, AMin, AMax: Int64): Boolean; overload;

function InRange(const AValue, AMin, AMax: Double): Boolean; overload;

用来判断一个数是否在某一范围内。如AMin<=AValue<=AMax,则返回True;否则则返回False。

6. Max、Min

Max

function Max(A,B: Integer): Integer; overload;

function Max(A,B: Int64): Int64; overload;

function Max(A,B: Single): Single; overload;

function Max(A,B: Double): Double; overload;

function Max(A,B: Extended): Extended; overload;

比较两个数字表达式返回其中的较大者。其中A、B的类型为Integer、Int64、Single、Double、Extended中的一类。

Min

function Min(A,B: Integer): Integer; overload;

function Min(A,B: Int64): Int64; overload;

function Min(A,B: Single): Single; overload;

function Min(A,B: Double): Double; overload;

function Min(A,B: Extended): Extended; overload;

比较两个数字表达式返回其中的较小者。其中A、B的类型为Integer、Int64、Single、Double、Extended中的一类。

7. Power、Round、RoundTo

Power

function Power(const Base, Exponent: Extended): Extended;:返回底数的任何次幂。其中base是底数,Exponent是指数。

Round

function Round(X: Extended): Int64;:将实数四舍五入为整数。

RoundTo

type TRoundToRange = -37..37;

function RoundTo(const AValue: Double; const ADigit: TRoundToRange): Double;:将实数按指定的ADigit来进行四舍五入。

RoundTo(1234567,3) = 1234000;
RoundTo(1.234,-2) = 1.23;
RoundTo(1.235,-2) = 1.24;  

8.Trunc

function Trunc(X: Extended): Int64;:返回一个函数的整数部分。与Int函数相似。

以上介绍的几个函数在Math类中比较常用。

参考:

http://blog.csdn.net/kimifdw/article/details/8582725

转载于:https://www.cnblogs.com/LittleTiger/p/4615349.html

Delphi Math里的基本函数,以及浮点数比较函数(转)相关推荐

  1. Delphi Math单元函数

    这个单元包含高性能的算术.三角.对数.统计和金融方面的计算及FPU程序函数用于补充Delphi语言System.pas 单元中的数学常规程序函数 注意 1) 对于有些函数,这个单元中涉及的概念或常数由 ...

  2. [JavaScript] Math里的api

    JS里有关Math的api 取得最大值和最小值 console.log(Math.min(1, 2, 3, 4, 5, 1, 2)) // 1 console.log(Math.max(1, 2, 3 ...

  3. SHARC音频DSP的算法详解(一)数字信号里的定点数和浮点数

    作者的话 ADI的音频DSP里,SHARC是现阶段最高端的型号,在汽车座舱的前装后装.音响.调音台等一切音频相关的应用中,都得到了广泛的应用.我在前面的文章中写过一个经典的型号:21489,这个系列就 ...

  4. Delphi 2010 里公开的 Midas.dll 的源代码!!

    源代码是用C++ Builder写的. 下载: http://files.cnblogs.com/AnyDelphi/Midas_Source.rar 转载于:https://www.cnblogs. ...

  5. python 浮点数精度丢失_javascript解决小数的加减乘除精度丢失的方案

    原因:js按照2进制来处理小数的加减乘除,在arg1的基础上 将arg2的精度进行扩展或逆扩展匹配,所以会出现如下情况. javascript(js)的小数点加减乘除问题,是一个js的bug如0.3* ...

  6. php writevarint64_PHP浮点数的一个常见问题的解答

    October 7, 2020 I look forward to seeing your new posts every day. i think many people like your pos ...

  7. Delphi Access violations 问题的解决之道

    Delphi Access violations 问题的解决之道 Windows用户可能经常会看到类似于错误提示:"Error:Access violation at address 836 ...

  8. 浮点数能进行取模运算吗?(不行,暂时只能是两个整数之间)

    自己在Dev里验证了,浮点数取模时有编译错误,通不过. 如:[Error] invalid operands of types 'double' and 'int' to binary 'operat ...

  9. C语言的本质(4)——浮点数的本质与运算

    C语言的本质(4)--浮点数的本质与运算 C语言规定了3种浮点数,float型.double型和long double型,其中float型占4个字节,double型占8个字节,longdouble型长 ...

最新文章

  1. vs2015 key
  2. ubuntu系统下matplotlib中文乱码问题
  3. oracle服务端安装和下载,oracle 11g 服务端下载地址及安装说明
  4. html5善于盒模型定位,2个小时上手html+css-003盒模型和定位
  5. 阿里架构10年,头条开发2年,我终于写出了一套Java核心知识点!
  6. 教你阅读vue源码的正确姿势,看完就学废!
  7. 记录linux历史命令,Linux历史记录命令
  8. AWS Academy 学生报名考证
  9. 三国志战略版:当锋无法破防的司马盾
  10. android 模拟器传文件夹里,夜神安卓模拟器和电脑互传文件的操作流程
  11. 招银网络 Java后端面经
  12. 自问自答(JavaScript篇)
  13. PHP微信公众号,获取用户地理位置 定位 经纬度
  14. 永远不要和沙雕一样的人去争论,争论最后你会发现你也是一个沙雕
  15. linux查看raw格式磁盘,KVM之raw和qcow2格式虚拟磁盘创建
  16. Stata:面板数据,一般加上个体固定效应和时间固定效应
  17. Batch Normalization:Accelerating Deep Network Training by Reducing Internal Covariate Shift 论文笔记
  18. 最新综述:深度学习图像三维重建最新方法及未来趋势
  19. 利用Python爬虫网站数据直接导入mysql数据库中
  20. 群晖NAS教程(二十)、利用Docker安装zdir搭建个人云盘

热门文章

  1. alibaba Fastjson的JOSN解析库 -
  2. sql SERVER 模拟试题
  3. php+gd库的源码安装
  4. Linux调试分析诊断利器----strace
  5. Vue学习(组件的定义及调用、路由)-学习笔记
  6. 十大排序算法(Java)
  7. (二)k-means算法原理以及python实现
  8. 《剑指offer》扑克牌顺序
  9. python字符串转字典并获取多层嵌套字典元素
  10. 从工作实践中积累Linux常用脚本(一)