[英]java parse double value from string as literal value
如何將字符串解析為文字雙精度值? 我有一組使用Double.valueOf(probabilityString)
解析的概率值,需要精確到1.0d
。
例如,所得到的雙值的總和為0.999999...
當概率字符串是0.2, 0.5, 0.2, 0.1
。
我想要的是將雙值分析為0.2d, 0.5d, 0.2d, 0.1d
這可能嗎?
我正在處理一個接受double[]
作為參數的第三方庫,如果double值沒有精確地總結為1.0d
,則拋出異常。
雙打只有64位長。 有無窮無盡的實數。 因此,不可能將每個真實表示為64位雙精度。 因此,使用雙打將始終導致近似結果。 如果您需要絕對精度,請使用BigDecimal。
嘗試這個:
DecimalFormat df =(DecimalFormat)NumberFormat.getInstance();
df.setParseBigDecimal(true);
BigDecimal bd = (BigDecimal) df.parse(probabilityString);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.