我知道将双变量格式化为小数位数X#的多种方法。话虽如此:
static double currentSelectedPrice = 0.00; //format to 2 decimal places
static double usercashBalance = 0.00
下面的代码可以通过我的代码在不同的位置找到。我不想浏览代码并格式化(currentSelectedPrice - usercashBalance)
的结果
if(usercashBalance < currentSelectedPrice)
{
System.out.println("Remaing: $" + (currentSelectedPrice - usercashBalance));
continue;
}
在声明这些变量时,最好已经对它们进行了格式化(因此其操作的输出也进行了格式化(。这可能吗?
double
(或Double
(没有格式化信息!
它只是一个值的浮点表示。
这两行导致d
:的值相同
double d = 1;
double d = 1.00000000;
然而,您可以控制如何渲染/格式化替身,例如
String formatted = String.format("%,.4f", d);
呈现小数点后4位的双精度值。
提示:如果将所有货币值存储为美分的int
,并将其呈现为十进制美元,则大多数问题都会消失。
我会尝试这样的
if(usercashBalance < currentSelectedPrice)
{
System.out.printf("Remaing: $%.<x>f", (currentSelectedPrice - usercashBalance));
continue;
}
x表示要从结果中打印的小数位数