在声明类型为double的变量时对其进行格式化



我知道将双变量格式化为小数位数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表示要从结果中打印的小数位数

相关内容

  • 没有找到相关文章

最新更新