天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 55|回复: 0

数值计算

[复制链接]
  • TA的每日心情
    开心
    前天 08:09
  • 签到天数: 85 天

    [LV.6]常住居民II

    1640

    主题

    206

    回帖

    214748万

    积分

    管理员

    积分
    2147483647
    发表于 2024-3-6 11:46:02 | 显示全部楼层 |阅读模式
    1. double MathUtil::PI()
    2. {
    3.         return atan(1.0) * 4;//常识,求π的高精度表示
    4.         //tan π/4=1 所以 atan( 1 ) = π/4,PI = atan(1) * 4
    5. }
    6. // 判断两个双精度浮点数是否相等,因为浮点数都是近似存储
    7. bool MathUtil::IsEqual(double a, double b, double tol)
    8. {   // 当两个浮点数的差小于10E-7,则判定两个浮点数相等
    9.         return (fabs(a - b) < tol);
    10. }
    11. //一位小数四舍五入
    12. int MathUtil::Round(double a)
    13. {
    14.         return(int)(a + 0.5);
    15. }
    16. //圆整,四舍五入
    17. double MathUtil::Round(double a, int precision)
    18. {
    19.         return (floor(a*pow(10.0, precision) + 0.5) / pow(10.0, precision));
    20.         //a乘10 的 precision 次方加0.5,用floor向下取整,最后除以10的p次方,从而将小数点移回到原来的位置
    21. }
    22. //生成一个在指定范围minValue和maxValue之间的随机整数
    23. int MathUtil::GetRand(int minValue, int maxValue)
    24. {
    25.         assert(maxValue - minValue);
    26.         //使用assert宏来检查maxValue和minValue之间的差异。如果maxValue小于或等于minValue,那么assert宏将抛出一个断言错误
    27.         int value = rand();//调用标准库中的rand()函数来生成一个随机整数,并将其赋值给变量value
    28.         int rc=minValue+(
    29.                 (int)CMathUtil::Round(((double)value)/RAND_MAX*(maxValue - minValue)));
    30.         /*这行代码首先将value强制转换为double类型,
    31.         然后除以RAND_MAX(在标准库中,这是一个表示随机数生成器可以生成的最大值的常量)。
    32.         这样做的目的是将生成的随机数缩放到[0, maxValue - minValue]的范围内。
    33.         然后使用CMathUtil::Round函数对这个浮点数进行四舍五入,并转换回整数。
    34.         最后,将结果加上minValue,以将生成的随机数转换回原始的范围[minValue, maxValue]。*/
    35.         return rc;//最后,这行代码返回计算出的随机整数。
    36. }
    复制代码

     

     

     

     

    数值计算
    中国膜结构网打造全中国最好的膜结构综合平台 ,统一协调膜结构设计,膜结构施工,膜材采购,膜材定制,膜结构预算全方位服务。 中国空间膜结构协会合作单位。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|中国膜结构网_中国空间膜结构协会

    GMT+8, 2024-6-1 08:25 , Processed in 0.059595 second(s), 21 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表