返回顶部

名称

get_double - 提示用户从标准输入中输入一行文本,并返回等价的双精度浮点数

概要

#include <cs50.h>

double get_double(const char *format, ...);

描述

提示用户从标准输入中输入一行文本,并尽可能精确地返回等价的双精度浮点数;如果文本不代表一个双精度浮点数或会导致下溢或上溢,则会重新提示用户输入。

提示格式类似于 printf(3)

返回值

返回从标准输入中读取的行的双精度浮点数等价值,在 [DBL_MIN, DBL_MAX) 范围内,尽可能精确。如果无法读取行,则返回 DBL_MAX。

示例

 /**
  * 返回两个双精度浮点数的商,或在错误时返回 DBL_MAX。
  */
  double divide_doubles(void)
  {
      // 从标准输入中读取双精度浮点数
      double d = get_double("输入一个双精度浮点数: ");

      // 确保我们成功读取了一个
      if (d == DBL_MAX)
      {
          return DBL_MAX;
      }

      double e = get_double("你想用 %lf 除以什么? ", d);

      // 确保我们不会除以零
      if (e == DBL_MAX || e == 0.0)
      {
          return DBL_MAX;
      }

      return d / e;

  }

另见

get_char(3), get_float(3), get_int(3), get_long(3), get_string(3), printf(3)