【发布时间】:2015-12-14 12:32:55
【问题描述】:
我有一个像这样的双重:
0.04251789
它应该看起来像这样:
0.04251700
无论最后两位是什么,都应该用00代替; 重要的是最后两位数字不会丢失,而是由 00 代替。
所以这个:
0.042517
会错的。
最快的方法是什么?
【问题讨论】:
-
所以它只是为了展示?
-
它被发送到 WebAPI 并且他们希望它恰好有 8 位数字。转换为字符串不是一种选择。
-
假设 API(基于 Web)不想要不可移植的二进制数据,您必须迟早将其转换为字符串。并且四舍五入后,只需在创建字符串时指定正确的字段宽度和精度即可。
-
那么 API 想要一个 8 位浮点数而不是字符串?
-
你想要的都是不可能的。双精度数不包含“一定数量的数字”。它包含(通常)53 位尾数、一个符号位和 10 位指数。当您将其转换为字符串时,您可以指定位数,但作为双精度数,0.5 和 0.50000000 之间没有区别。