随笔 - 2146  文章 - 19 评论 - 11846 阅读 - 1267万

//整除与余数: DivMod
const
  a = 11;
  b = 3;
var
  x,y: Word;
begin
  ShowMessage(IntToStr(a div b)); {整除得 3}
  ShowMessage(IntToStr(a mod b)); {余数 2}

  DivMod(a,b,x,y);
  ShowMessage(IntToStr(x)); {3}
  ShowMessage(IntToStr(y)); {2}
end;

//返回整数: Ceil、Floor var   d1,d2: Real; const   d = 1.2; begin   {向大补入}   d1 := Ceil(d);   d2 := Ceil(-d);   ShowMessage(FloatToStr(d1)); {2}   ShowMessage(FloatToStr(d2)); {-1}   {向小舍入}   d1 := Floor(d);   d2 := Floor(-d);   ShowMessage(FloatToStr(d1)); {1}   ShowMessage(FloatToStr(d2)); {-2} end;
//最大值与最小值: Max、Min var   d: Real; begin   d := Max(5.2, -2);   ShowMessage(FloatToStr(d)); {5.2}   d := Min(5.2, -2);   ShowMessage(FloatToStr(d)); {-2} end;
//Double 数组求和: Sum var   d: Real; const   arr: array[0..3] of Double = (1, 2, 3, -4.5); begin   d := Sum(arr); {要求必须是 Double 数组}   ShowMessage(FloatToStr(d)); {1.5} end;
//Double 数组求平均值: Mean var   arr: array[0..5] of Double;   d: Double; begin   arr[0] :=  -1.2;   arr[1] :=  1.0;   arr[2] :=  2.5;   arr[3] :=  3.0;   arr[4] :=  4.5;   arr[5] :=  25.0;   d := Mean(arr);   ShowMessage(FloatToStr(d)); {5.8} end;
//计算一个数的 n 次方: Power var   d: Real; begin   d := Power(3,2);            {3 的 2 次方}   ShowMessage(FloatToStr(d)); {9} end;
//判断在一个误差范围内, 一个数字是否为0: IsZero const   d1 = 0.4;   d2 = -0.1;   d3 = 3; var   b: Boolean; begin   b := IsZero(d1, 0.4);      {参数2是误差范围}   ShowMessage(BoolToStr(b)); {True}   b := IsZero(d2, 0.4);   ShowMessage(BoolToStr(b)); {True}   b := IsZero(d3, 0.4);   ShowMessage(BoolToStr(b)); {False}   b := IsZero(d3);          {参数2是可选的, 默认是0}   ShowMessage(BoolToStr(b)); {False} end;
//比较两个参数在一定误差范围内是否相等: SameValue var   b: Boolean; begin   b := SameValue(1.2, 1.21, 0.01); {误差是 0.01}   ShowMessage(BoolToStr(b));      {True}   b := SameValue(1.2, 1.21);      {误差默认是 0}   ShowMessage(BoolToStr(b));      {False} end;
//判断一个数的正负 var   v: TValueSign; {-1..1} begin   v := Sign(22);   ShowMessage(IntToStr(v)); {返回 1 表示是正数}   v := Sign(-22);   ShowMessage(IntToStr(v)); {返回 -1 表示是负数}   v := Sign(0);   ShowMessage(IntToStr(v)); {返回 0 表示是 0} end;
//舍入位数: RoundTo、SimpleRoundTo var   d: Real; const   d1 = 1234567;   d2 = 1.234;   d3 = 1.235;   d4 = - 1.235; begin   d := RoundTo(d1,3);   ShowMessage(FloatToStr(d)); {123500}   d := RoundTo(d2,-2);   ShowMessage(FloatToStr(d)); {1.23}   d := RoundTo(d3,-2);   ShowMessage(FloatToStr(d)); {1.24}   d := RoundTo(d4,-2);   ShowMessage(FloatToStr(d)); {-1.24}   d := SimpleRoundTo(d1,3);   ShowMessage(FloatToStr(d)); {123500}   d := SimpleRoundTo(d2,-2);   ShowMessage(FloatToStr(d)); {1.23}   d := SimpleRoundTo(d3,-2);   ShowMessage(FloatToStr(d)); {1.24}   d := SimpleRoundTo(d4,-2);   ShowMessage(FloatToStr(d)); {-1.24} {RoundTo 使用银行家舍入法; SimpleRoundTo 使用不均衡算法舍入, 适合更大的值} end;
posted on   万一  阅读(6618)  评论(1编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧


点击右上角即可分享
微信分享提示