⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dblround.c

📁 国外网站上的一些精典的C程序
💻 C
字号:
/***  DBLROUND.C - Rounds a double to the nearest whole number**  public domain by Ross Cottrell*/#include <float.h>#include <limits.h>#include "snipmath.h"#if defined(__ZTC__) #include <fltenv.h> #define SAVEROUND() \       int fersave = fegetround(); \       fesetround(FE_TONEAREST) #define RESTOREROUND() \       fesetround(fersave)#else #if !defined(FLT_ROUNDS) || (FLT_ROUNDS != 1)  #error FLT_ROUNDS needs to be defined to be 1 #endif #define SAVEROUND() #define RESTOREROUND()#endifdouble dround(double x){      Boolean_T flag;      static volatile double X;      SAVEROUND();      if (True_ == (flag = (x < 0.0)))            X = -x;      else  X = x;      X += 1.0 / DBL_EPSILON;      X -= 1.0 / DBL_EPSILON;      RESTOREROUND();      return ((flag) ? -X : X);}#ifdef TEST#include <stdio.h>#include <stdlib.h>main(int argc, char *argv[]){      double val;      char *dummy;      while (--argc)      {            val = strtod((const char *)(*(++argv)), &dummy);            printf("dround(%g) = ", val);            printf("%.12g\n", dround(val));      }      return EXIT_SUCCESS;}#endif /* TEST */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -