1

我解析了一个 CSV 文件,其中包含 currency_exchange_rate 列,其中的值具有不同的小数位,例如:

  • 3.6415
  • 0.896458
  • 1
  • 0.30376

我想将所有费率四舍五入到小数点后 4 位,以防高于它应该如下所示:

  • 3.6415
  • 0.8965
  • 1.0000
  • 0.3038

将列数据类型更改为“浮点”时,“格式”选项显示为灰色。我查看了“指令”和“函数”章节以获取更多信息,并且没有提到浮点值的小数位。我在 StackOverflow 上找到了另一个关于自定义转换的线程,但我仍然不知道是否可以根据需要对值进行舍入。

你能告诉我如何实现我上面描述的格式吗?任何输入将不胜感激。

4

1 回答 1

2

如果您已经将列数据类型更改为浮点数,您可以使用计算下的选项(而不是格式)来执行舍入、乘法、除法等操作。请注意,“舍入”将舍入到最接近的整数,因此您需要做一些事情,比如乘以除以 10^(所需的小数位数)以及四舍五入。

您还可以定义一个自定义转换来做类似的事情。获取名为 col1 的列的所有值并将它们四舍五入到小数点后两位的简单自定义转换可能如下所示:math:round(col1*100)*0.01

对于更复杂(也许更精确)的自定义转换,您可以使用 jexl 表达式。有关自定义转换的更多信息,包括示例,可以在此处找到:https ://medium.com/cdapio/advanced-cdap-directives-c10569724da0

于 2020-01-30T00:58:54.213 回答