我有一個字符串值,可以包含一個double,整數,ascii或字節值,我把這個值放入JLabel。我希望將雙精度值和長精度值的格式設置爲4000000000000
而不是java的JLabel默認打印格式4.0E12
。現在我知道字符串中的數據類型是什麼,但我不知道如何使JLabel只顯示雙精度和整數值的非科學形式。如何在JLabel和JTextField上顯示非科學格式的值?
這裏是我試過到目前爲止:
String str = value; // string that holds the value
switch (var) // var that says which data type my str is
{
case LONG:
//convert my string from scientific to non-scientific here
break;
case DOUBLE:
//convert my string from scientific to non-scientific here
break;
case ASCII:
//do nothing
break;
...
}
JLabel label = new JLabel();
label.setText(str); //Want this to be in non-scientific form
但這種方法仍然只打印了科學的形式。
編輯:
我的轉換是這樣的:
str = new DecimalFormat("#0.###").format(str);
也肯定這是一個長期的價值,我留下了一些對clearity數據類型的變量。 我不知道這是否會適用於每種情況,即使我確實得到它的工作。我需要它的工作整數,長期,xtended,雙和浮動。
聽起來像您的轉換不正確。你能提供你如何做轉換的代碼嗎? JLabel將僅打印您提供的文本。如果文本錯誤,則說明文本錯誤。順便說一句,你不能有一個'int'值那麼大,你的意思是'長'嗎? – 2011-06-08 14:54:33
@Peter Lawrey:我已經提供了額外的代碼以及int來解釋這個問題。 – Grammin 2011-06-08 14:58:42