Delphi Math里的基本函数,以及浮点数比较函数(转)
源: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里的基本函数,以及浮点数比较函数(转)相关推荐
- Delphi Math单元函数
这个单元包含高性能的算术.三角.对数.统计和金融方面的计算及FPU程序函数用于补充Delphi语言System.pas 单元中的数学常规程序函数 注意 1) 对于有些函数,这个单元中涉及的概念或常数由 ...
- [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 ...
- SHARC音频DSP的算法详解(一)数字信号里的定点数和浮点数
作者的话 ADI的音频DSP里,SHARC是现阶段最高端的型号,在汽车座舱的前装后装.音响.调音台等一切音频相关的应用中,都得到了广泛的应用.我在前面的文章中写过一个经典的型号:21489,这个系列就 ...
- Delphi 2010 里公开的 Midas.dll 的源代码!!
源代码是用C++ Builder写的. 下载: http://files.cnblogs.com/AnyDelphi/Midas_Source.rar 转载于:https://www.cnblogs. ...
- python 浮点数精度丢失_javascript解决小数的加减乘除精度丢失的方案
原因:js按照2进制来处理小数的加减乘除,在arg1的基础上 将arg2的精度进行扩展或逆扩展匹配,所以会出现如下情况. javascript(js)的小数点加减乘除问题,是一个js的bug如0.3* ...
- php writevarint64_PHP浮点数的一个常见问题的解答
October 7, 2020 I look forward to seeing your new posts every day. i think many people like your pos ...
- Delphi Access violations 问题的解决之道
Delphi Access violations 问题的解决之道 Windows用户可能经常会看到类似于错误提示:"Error:Access violation at address 836 ...
- 浮点数能进行取模运算吗?(不行,暂时只能是两个整数之间)
自己在Dev里验证了,浮点数取模时有编译错误,通不过. 如:[Error] invalid operands of types 'double' and 'int' to binary 'operat ...
- C语言的本质(4)——浮点数的本质与运算
C语言的本质(4)--浮点数的本质与运算 C语言规定了3种浮点数,float型.double型和long double型,其中float型占4个字节,double型占8个字节,longdouble型长 ...
最新文章
- vs2015 key
- ubuntu系统下matplotlib中文乱码问题
- oracle服务端安装和下载,oracle 11g 服务端下载地址及安装说明
- html5善于盒模型定位,2个小时上手html+css-003盒模型和定位
- 阿里架构10年,头条开发2年,我终于写出了一套Java核心知识点!
- 教你阅读vue源码的正确姿势,看完就学废!
- 记录linux历史命令,Linux历史记录命令
- AWS Academy 学生报名考证
- 三国志战略版:当锋无法破防的司马盾
- android 模拟器传文件夹里,夜神安卓模拟器和电脑互传文件的操作流程
- 招银网络 Java后端面经
- 自问自答(JavaScript篇)
- PHP微信公众号,获取用户地理位置 定位 经纬度
- 永远不要和沙雕一样的人去争论,争论最后你会发现你也是一个沙雕
- linux查看raw格式磁盘,KVM之raw和qcow2格式虚拟磁盘创建
- Stata:面板数据,一般加上个体固定效应和时间固定效应
- Batch Normalization:Accelerating Deep Network Training by Reducing Internal Covariate Shift 论文笔记
- 最新综述:深度学习图像三维重建最新方法及未来趋势
- 利用Python爬虫网站数据直接导入mysql数据库中
- 群晖NAS教程(二十)、利用Docker安装zdir搭建个人云盘