通过精确控制格式化浮点数
处理浮点数时,通常需要美观地格式化它们,而不使用不必要的小数零。考虑打印一系列值的任务,其中包括存储为双精度数和真正双精度数的整数。
避免使用特定格式代码的尾随零
While String.format(" %f", value) 可能看起来合适,它为小值附加尾随零。为了达到所需的精度,请考虑使用替代格式代码:
带小数检查的自定义格式函数
为了精确控制,请实现区分整数和整数的自定义格式函数doubles:
public static String fmt(double d) { if (d == (long) d) return String.format("%d", (long) d); else return String.format("%s", d); }
此函数检查 double 值是否表示整数(使用强制转换为 long)。如果是,它会使用 String.format("%d"); 将值格式化为整数。否则,它会格式化双精度值,而不会产生不必要的精度。
输出示例:
使用此自定义函数,可以实现所需的输出:
232 0.18 1237875192 4.58 0 1.2345
有关区域设置注意事项的注意事项
字符串格式为区域设置敏感。精确的格式化结果可能会因区域设置而异。
以上是如何格式化浮点数以避免不必要的尾随零?的详细内容。更多信息请关注PHP中文网其他相关文章!