android java添加/次小数结果

android java添加/次小数结果,java,android,Java,Android,我试图添加浮点数,但效果不好 Result: 0.2 0.4 0.6 0.8 1.0 1.2 1.4000001 我的代码: static public void add_order(Product d) { Float tt = Float.parseFloat(text_price.getText().toString()); tt += Float.parseFloat(d.getPrice()); te

我试图添加浮点数,但效果不好

Result:
0.2
0.4
0.6
0.8
1.0
1.2
1.4000001
我的代码:

static public void add_order(Product d)
    {       
        Float tt = Float.parseFloat(text_price.getText().toString());       
        tt += Float.parseFloat(d.getPrice());
        text_price.setText(tt + "");
    }

有什么想法吗?

对我来说似乎不太好,
float
不是为精确的结果而设计的;不要在这种情况下使用它。使用一个
int
long
,例如乘以100,则有两个实际工作的数字


根据代码示例中的术语,我假设您正在进行一些货币工作;如果您对不同的精度有要求,请阅读
BigDecimal

一些阅读:一般来说,在处理金钱或任何其他值时,如果您不能让计算机出错,请不要使用float或double。我可以举一个将字符串数字转换为BigDecimal的示例吗?另外,
我可以用一个例子将字符串数字转换成BigDecimal吗?请使用带有字符串参数的构造函数,比如
新的BigDecimal(“12.34”)
float/double和BigDecimal之间的区别在于是否特别支持小数。Float和double是基于二进制分数的,以实现紧凑性和高效的硬件支持。BigDecimal基于小数,如果可以表示为短小数的数字特别重要,则它是正确的类型。