2013-03-13 74 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,在那裏你可以控制小數位的數量。

總之,這個問題並沒有真正的意義。