我有一辆花车
x = 2.00
我想把它作为json发送
message = { 'x': 2.00 }
但当我这么做的时候
print(message)
我看到Python删除了最后一个小数位。我怎样才能把浮点数保持在小数点后两位?我明白2。00和2.0并没有什么不同,但它是一个要求,我发送的确切数字(两个小数位包括在内)(我已经尝试了Decimal类,它仍然表现相同,我需要发送它作为一个浮动而不是字符串)。先谢谢你了。
我有一辆花车
x = 2.00
我想把它作为json发送
message = { 'x': 2.00 }
但当我这么做的时候
print(message)
我看到Python删除了最后一个小数位。我怎样才能把浮点数保持在小数点后两位?我明白2。00和2.0并没有什么不同,但它是一个要求,我发送的确切数字(两个小数位包括在内)(我已经尝试了Decimal类,它仍然表现相同,我需要发送它作为一个浮动而不是字符串)。先谢谢你了。
4条答案
按热度按时间hvvq6cgz1#
您需要使用一个专门的库来序列化浮点数并保持精度。Protocol Buffers是一个这样的库(协议),您可以定义自己的JSON编码器类:https://developers.google.com/protocol-buffers/docs/proto3。
ao218c7q2#
你可以定义自己的JSON编码器类:
输出:
5cnsuln73#
您可以通过以下方式使用自定义JSONEncoder:
1.将数字编码为带有一些周围字符的2dp字符串。
1.使用正则表达式去掉特殊字符和引号。
下面是一个使用Decimal的例子:
结果是:
lrpiutwd4#
下面是一个例子: