decimal64

语法

decimal64(X, scale)

详情

将输入的数据类型转换为 DECIMAL64 类型。

参数

X 整型/浮点型/字符串类型标量或向量。

scale 整型标量,表示保留的小数位数。

例子

a=decimal64(142, 2)
a

返回:142.00

b=decimal64(1\7, 6)
b

返回:0.142857

a+b

返回:142.142857

a*b

返回:20.28569400

decimal64("3.1415926535", 4)

返回:3.1415

一个 DECIMAL 类型向量里的所有元素的类型和 scale 必须相同,例如:

d1=[1.23$DECIMAL64(4), 3$DECIMAL64(4), 3.14$DECIMAL64(4)];

返回:[1.2300,3.0000,3.1400]

typestr(d1);

返回:FAST DECIMAL64 VECTOR

如果元素的 scale 不同,则会创建并输出元组:

d2=[1.23$DECIMAL64(4), 3$DECIMAL64(4), 3.14$DECIMAL64(3)];

返回:(1.2300,3.0000,3.140)

typestr(d2);

返回:ANY VECTOR

将 STRING 或 SYMBOL 类型转换为 DECIMAL 类型时,不同版本服务器的处理方式存在差别。2.00.10 之前版本会将超出 scale 的小数部分直接舍去。而 2.00.10 及之后的版本,会将超出 scale 的小数部分进行四舍五入。例如,对于以下的转换:

symbol(["1.341", "4.5677"])$DECIMAL64(2)

2.00.10 之前的版本,结果为:[1.34,4.56]

2.00.10 及之后的版本,结果为:[1.34,4.57]