我有一个avro格式的主题,其中包含类似于下面的数据:
{
"data":{
"NAME":{
"string":"GIORGOS"
},
"BALANCE":{
"string":"154711.5800000000"
}
},
"op":"INSERT"
}
以及使用本主题中数据的kafka使用者(我的接收器连接器包含一些转换,因此
data
片段被解析)
while (true) {
try {
ConsumerRecords<String, GenericRecord> records = consumer.poll(200);
for (ConsumerRecord<String, GenericRecord> record : records) {
System.out.println("TESTING 1: " + record.value());
System.out.println("TESTING 2: " + record.value().toString());
}
} catch(Exception ex) {
ex.printStackTrace();
}
}
结果是:
TESTING 1: {"NAME": "GIORGOS", "BALANCE": 154712.0}
TESTING 2: {"NAME": "GIORGOS", "BALANCE": 154712.0}
这里的问题是
BALANCE
话题是
154561.5800000000
但是卡夫卡的消费者把这个值四舍五入到
154712.0
.
我还注意到左边最多有4个数字的值
3982.95
不向上取整,数值左边有5位(如
43982.68
)将四舍五入到小数点后一位(
43982.7
)
我该如何处理这个问题?