这可能是由于浮点数误差造成的,想避免浮点到decimal的转化误差,可以将数据转成 STRING。
t=table(100:1, `id`buy, [INT,DOUBLE]); insert into t values (2,4.52); re=select buy,buy.format("0.00") as buy2 from t saveText(re,"buy.csv");
如下代码,记录中buy是4.52,但decimal32(buy, 2)转换后保存到文本文件中后变成4.51了
t=table(100:1, `id`buy, [INT,DOUBLE]);
insert into t values (2,4.52);
saveText(select buy,decimal32(buy, 3) as buy3, decimal32(buy, 2) as buy2 from t,"buy.csv");
或者直接执行decimal64(4.52, 2) ,也得到 4.51。请问是怎么回事?