购物网站建设和使用wordpress 追加站点
文章目录
第二十章 ObjectScript 应用程序中的数值计算 - 转换:十进制到 $DOUBLE
$DOUBLE 转换:十进制到 $DOUBLE
注意: 建议应用程序显式控制十进制和 $DOUBLE 格式之间的转换。
到 $DOUBLE 格式的转换是通过 $DOUBLE 函数显式完成的。此函数还允许通过表达式 $DOUBLE(<S>) 显式构造非数字和无穷大的 IEEE 表示,其中 <S> 是:
- 字符串
nan生成NaN - 任意字符串
inf、+inf、-inf、infinity、+infinity或-infinity(表示无穷大)。 - 数字和字符串分别为
-0和-0
注意:输入时忽略字符串 <S> 的大小写。输出时,仅生成 NAN、INF 和 -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为零时,使用以下规则确定该值:
-
如果
x是无穷大,则根据需要返回INF或-INF。 -
如果
x是NaN,则返回NAN。 -
如果
x是正零或负零,则返回0。 -
如果
x可以精确地用20个或更少的有效数字表示,则返回包含这些精确有效数字的规范数字字符串。 -
否则,将小数表示形式截断为 20 位有效数字,并且
- 如果第
20位是0,则替换为1; - 如果第
20位数字是5,则将其替换为6。
然后,返回结果字符串。
- 如果第
此舍入规则涉及将第 20 位数字截断至零,除非它会不精确地使第 20 位数字为 0 或 5,该舍入规则具有以下属性:
- 如果
$DOUBLE值与十进制值不同,则这两个值将始终具有不相等的表示字符串。 - 当
$DOUBLE值可以转换为十进制值而不生成<MAXNUMBER>错误时,结果与将$DOUBLE值转换为字符串,然后将该字符串转换为十进制值相同。进行两次转换时不可能出现双轮错误。
转换:十进制到字符串
当十进制值按原样使用时(例如,作为串联运算符的操作数之一),默认情况下可以将其转换为字符串。当需要对转换进行更多控制时,请使用 $FNUMBER 函数。
