如何將字符串解析爲文字double值?我有一組概率值,我使用Double.valueOf(probabilityString)
解析,需要精確地加到1.0d
。java從字符串解析double值作爲文字值
例如,當概率字符串爲0.2, 0.5, 0.2, 0.1
時,雙倍值的結果總和爲0.999999...
。
我想要的是將雙值解析爲0.2d, 0.5d, 0.2d, 0.1d
,這可能嗎?
我正在處理接受double[]
作爲參數的第三方庫,如果雙精度值沒有精確地加總到1.0d
,則拋出異常。
你需要的東西精度高於浮點數即可。這就是浮點數的工作方式。某些數字不能完全表示,所以將這些數字相加並不能得出您期望的結果。 – Corbin
您需要假設0.9999999999999999與1.0非常接近,無關緊要。 –
奇怪的第三方庫,使這個假設。 – jontro