2013-03-13 102 views
0

代码保持在0。 我需要保持0的浮点值(Float f)进行一些验证。我该怎么做呢?在Java的浮点运算

+0

不想用Df.format格式化字符串...我想用浮点数保持0的值。 – user2163293 2013-03-13 00:33:59

+0

但是...它意味着同样的事情....你为什么要这样做? – Doorknob 2013-03-13 00:34:31

+3

1.8和1.80是相同的值。唯一的区别是你如何显示它,这是'format()'的用途。你想把这个数字比作什么?你想解决什么问题? – 2013-03-13 00:37:14

回答

4

这是一个简单的格式问题:

System.out.printf("%.2f\n", f); 
+0

但是如何在float变量中赋值这个值? – user2163293 2013-03-13 00:35:04

+2

@ user2163293:这没有意义。 1.8和1.80是相同的值。如果你有兴趣验证字符序列“1.80”,那么你正在谈论一个字符串。在这种情况下,您应该将其存储为'String'。 – 2013-03-13 00:37:02

5

你混淆了一个数值及其格式化。这是不可能实际存储1.80作为一个浮点数,但它是可能的显示数字作为格式String强制两位小数。您的选项是:

  1. 保留原始字符串,用户输入,如果小数位的数量,他们给了
    重要

  2. 存储为float数量,但显示的数字迫使其时显示两位小数这样的:

    System.out.printf("%.2f\n", f);

+0

明白了。这种情况下将存储为字符串。坦克:) – user2163293 2013-03-13 00:40:12

0
  1. 浮点变量没有小数位。他们有二进制的地方。
  2. 1.8和1.80是相同的数字,它们在floatdouble中以相同的方式表示。
  3. 如果你希望他们呈现具有一定的小数位数,你必须转换为十进制基数,通过无论是BigDecimalDecimalFormat,在那里你可以控制小数位的数量。

总之,这个问题并没有真正的意义。