美文网首页
第二十章 ObjectScript 应用程序中的数值计算 - 转

第二十章 ObjectScript 应用程序中的数值计算 - 转

作者: Cache技术分享 | 来源:发表于2023-11-08 08:40 被阅读0次

    <center> 第二十章 ObjectScript 应用程序中的数值计算 - 转换:十进制到 $DOUBLE </center>

    转换:十进制到 $DOUBLE

    注意: 建议应用程序显式控制十进制和 $DOUBLE 格式之间的转换。

    $DOUBLE 格式的转换是通过 $DOUBLE 函数显式完成的。此函数还允许通过表达式 $DOUBLE(<S>) 显式构造非数字和无穷大的 IEEE 表示,其中 <S> 是:

    • 字符串 nan 生成 NaN
    • 任意字符串 inf+inf-infinfinity+infinity-infinity(表示无穷大)。
    • 数字和字符串分别为 -0-0

    注意:输入时忽略字符串 <S> 的大小写。输出时,仅生成 NANINF-INF

    转换:$DOUBLE 到十进制

    注意: 建议应用程序显式控制十进制和 $DOUBLE 格式之间的转换。

    $DOUBLE 形式的值使用 $DECIMAL 函数转换为十进制值。调用该函数的结果是一个适合转换为十进制值的字符串。

    注意:虽然此描述假设提供给 $DECIMAL 的值是 $DOUBLE 值,但这不是必需的。可以提供任何数值作为参数,并且相同的规则适用于舍入。

    $DECIMAL(x)

    该函数的单参数形式将作为其参数给出的 $DOUBLE 值转换为十进制。 $DECIMAL 将数字的小数部分四舍五入为 19 位。 $DECIMAL 始终四舍五入到最接近的十进制值。

    $DECIMAL(x, n)

    两个参数的形式允许精确控制返回的位数。如果 n 大于 38,则会发生 <ILLEGAL VALUE> 错误。如果 n 大于 0,则返回四舍五入到 n 个有效数字的 x 值。

    • n为零时,使用以下规则确定该值:
    1. 如果 x 是无穷大,则根据需要返回 INF-INF

    2. 如果 xNaN,则返回 NAN

    3. 如果 x 是正零或负零,则返回 0

    4. 如果 x 可以精确地用 20 个或更少的有效数字表示,则返回包含这些精确有效数字的规范数字字符串。

    5. 否则,将小数表示形式截断为 20 位有效数字,并且

      1. 如果第20位是0,则替换为1
      2. 如果第 20 位数字是 5,则将其替换为 6

      然后,返回结果字符串。

    此舍入规则涉及将第 20 位数字截断至零,除非它会不精确地使第 20 位数字为 05,该舍入规则具有以下属性:

    • 如果 $DOUBLE 值与十进制值不同,则这两个值将始终具有不相等的表示字符串。
    • $DOUBLE 值可以转换为十进制值而不生成 <MAXNUMBER> 错误时,结果与将 $DOUBLE 值转换为字符串,然后将该字符串转换为十进制值相同。进行两次转换时不可能出现双轮错误。

    转换:十进制到字符串

    当十进制值按原样使用时(例如,作为串联运算符的操作数之一),默认情况下可以将其转换为字符串。当需要对转换进行更多控制时,请使用 $FNUMBER 函数。

    相关文章

      网友评论

          本文标题:第二十章 ObjectScript 应用程序中的数值计算 - 转

          本文链接:https://www.haomeiwen.com/subject/smcqwdtx.html