相关疑难解决方法(0)

为什么不使用Double或Float来表示货币?

我总是被告知永远不要代表钱doublefloat类型,这次我向你提出问题:为什么?

我确信有一个很好的理由,我根本不知道它是什么.

floating-point currency

887
推荐指数
11
解决办法
27万
查看次数

将Double值格式化为2个小数位的最佳方法

可能重复:
将小数点后的双精度数加到2位有效数字

我在我的应用程序中处理了很多双值,是否有任何简单的方法来处理Java中十进制值的格式?

还有其他更好的办法吗?

 DecimalFormat df = new DecimalFormat("#.##");
Run Code Online (Sandbox Code Playgroud)

我想要做的基本上是格式双值

23.59004  to 23.59

35.7  to 35.70

3.0 to 3.00

9 to 9.00
Run Code Online (Sandbox Code Playgroud)

java

292
推荐指数
2
解决办法
65万
查看次数

如何在Android中舍入浮点数

我陷入了下面的情景:

如果x为1.5或更低,则最终结果为x = 1.如果x大于1.5,则x = 2.

输入数字为x/100.

例如:input = 0.015 => x = 1.5 => display x = 1.

我得到的问题是浮点数不准确.例如:input = 0.015但实际上它类似于0.01500000000000002.在这种情况下,x将是1.500000000000002,其大于1.5 =>显示输出是x = 2.

它是随机发生的,我不知道如何解决它.像0.5一样,1.5会给我正确的结果.但2.5,3.5,4.5,5.5会给我错误的结果.然后6.5将再次给我正确的结果.

我实现的代码如下:

float x = 0.015;
NumberFormat nf = DecimalFormat.getPercentInstance();
nf.setMaximumFractionDigits(0);
output = nf.format(x);
Run Code Online (Sandbox Code Playgroud)

所以取决于x,输出可能是对还是错.这是随机的.

我尝试使用Math.round,Math.floor,Math.ceils,但由于浮点数不可预测,因此它们似乎都不起作用.

对解决方案有何建议?

提前致谢.

java double android decimal rounding

7
推荐指数
3
解决办法
1万
查看次数

获取数字的前N位数

我正在写一个显示数字阶乘的小程序.当我输入数字20时,我得到了数字2432902008176640000.

如何在Java中限制十进制数.

例如,数字2432902008176640000应为2432(限制4).

提前致谢.

java numbers

2
推荐指数
1
解决办法
4146
查看次数

标签 统计

java ×3

android ×1

currency ×1

decimal ×1

double ×1

floating-point ×1

numbers ×1

rounding ×1