我在Stackoverflow上看到了一堆问题,指的是在双重后隐藏.0
,但每个答案都说使用DecimalFormat并执行#.#
来隐藏它。除了这不是我想要的。
对于双重不仅仅以.0
结尾的每一种可能性,我希望它们是这样的。除非它在.0
结束,否则将其删除。换句话说,我希望始终保持精确度,除非它以.0
结束。
示例:
0.0000000000000000042345470000230 -> 0.0000000000000000042345470000230
0.4395083451 -> 0.4395083451
46547453.00024235 -> 46547453.00024235
435.0 -> 435
有没有办法实现这个目标?
进一步的例子:
这个问题here有我所说的答案类型:
使用DecimalFormat
double answer = 5.0; DecimalFormat df = new DecimalFormat("###.#"); System.out.println(df.format(answer));
上面的###.#
表示我将显示前三位数,一个句点,然后是第一个数字。无论我的价值如何,只会对第一个小数进行格式化。
答案 0 :(得分:2)
fabric.Object.prototype.objectCaching = false;
var canvas = new fabric.Canvas('canvas');
var triangle = new fabric.Triangle({
fill: 'green',
left: 200,
top: 200,
padding: 5,
hasBorders: false,
cornerColor: 'black'
});
canvas.add(triangle);
canvas.renderAll();
triangle.setControlsVisibility({
tr: false,
br: false,
bl: false,
ml: false,
mt: false,
mr: false,
mb: false,
mtr: false
});
//Square root of 5 will give you a lot of decimals
BigDecimal d1 = new BigDecimal(sqrt(5));
//5 will give you none
BigDecimal d2 = new BigDecimal(5);
//Print and enjoy
System.out.println(d1.stripTrailingZeros());
System.out.println(d2.stripTrailingZeros());
将删除普通0的任何痕迹,但如果存在其他数字,请保留格式。