2015-08-03 28 views
-2

我想將浮點數0.24779509870200961轉換爲填充文本字段的字符串,但文本字段中的值顯示不正確。我怎麼能這樣做。如何正確地將Float轉換爲字符串?

+4

告訴我們你是如何做到這一點 –

+0

怎麼樣'的setValue( 「0.24779509870200961」)'? :)這將做你的任務:) –

+0

@HonzaZidek我想你的意思是''JTextField#setText(String)''那裏 –

回答

-1

您可以使用下面的代碼將Float轉換爲Textified字符串。

import java.math.BigDecimal; 
import java.math.MathContext; 
public class Test_1 { 

public static void main(String[] args) { 
    char arr[] = new char[19]; 
    BigDecimal bd = new BigDecimal(0.24779509870200961, MathContext.DECIMAL128); 
    bd = bd.setScale(64); 
     // for (int i = 0; i < 19; i++) { 
    for (int i = 0; i < bd.toString().length(); i++) { 
     if (i <= 18) { 
      if (i == 18) { 
       if (bd.toString().charAt(i) > 5) { 
        arr[i] = '1'; 
        break; 
       } 
      } 
      arr[i] = bd.toString().charAt(i); 
     } else { 
      break; 
     } 
    } 
    String text = String.valueOf(arr); 
    System.out.print(text); 
    // here Add text in your textField 
    //textField.setText(text); 

}} 
+0

在這種情況下字符串的值將是0.2477951。這是因爲float數據類型的限制。 – drgPP

+0

@drgPP現在您可以檢查代碼。你會得到期望的輸出 – Rafiq

+0

@Rafiq謝謝。但是當我編碼浮動f = 0.24779509870200961f和BigDecimal bd = new BigDecimal(f,MathContext.DECIMAL128);輸出0.24779510498046871。那麼有什麼不同?謝謝 – Vancurry

相關問題