[英]What is decimal format exactly doing?
這是我的代碼:
float result=(float) ( (new Float(result1)*0.3)+(new Float(result2)*0.7));
String a=dec.format(result);
vprosvasis.setText(a);
如果我在應用程序的其他地方使用vprosvasis
,則價格為a
。
例如,如果我的結果是12,34
, a
將是12,3
所以如果我寫, vprosvasis
將是12,3
float genikosvathmos = ((new Float(vprosvasis.getText().toString()) +
new Float(vprosvasis2.getText().toString()) +
new Float(vprosvasis3.getText().toString()) +
new Float(vprosvasis4.getText().toString()) +
new Float(vprosvasis5.getText().toString()) +
new Float(vprosvasis6.getText().toString())) / 6);
建議使用基元(特別是double
)而不是對象包裝器(除非您有一些需要不在此處顯示)。
然后查看Double
javadoc,尤其是靜態實用程序方法:
http://download.oracle.com/javase/6/docs/api/java/lang/Double.html
double myDouble = Double.parseDouble(myString);
String s = Double.toString(myDouble);
DecimalFormat
的目的是以特定於語言環境的方式將數字格式化為文本。 (也可以將特定於語言環境的數字格式解析為合適的Number
類型。)例如,在美國英語語言環境中,句點( '.'
)用作小數點,而不是逗號( ','
)。
重要的是要注意,由DecimalFormat
生成的String
很可能與Float(String)
構造函數所需的格式不兼容。 Float
使用的字符串格式不是特定於語言環境的; 它是一種固定格式,與Java語言規范中針對Java源代碼中的float
文字所指定的格式相同。
如果您要用錢進行計算,請不要使用float
或double
這樣的float
類型。 請改用java.math.BigDecimal
實例。 此類型執行精確的算術運算,執行舍入時,您可以控制舍入以符合會計慣例。
像Daniel一樣,我不太確定您想從這篇文章中學到什么。 但是,我將以面值回答您在標題中提出的問題。
您不包括聲明dec
的代碼,也不包括對其進行操作的任何代碼,但是從上下文來看,它似乎是DecimalFormat
類的實例。 如果是這樣,它將采用result
,它是一個float
,並執行以下操作:
long
NumberFormat
繼承的format(double number)
方法獲取result
的String
表示形式 a
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.