[英]Convert from double to string without rounding in C#
我們遇到了一個問題,就是在使用.toString()方法后將double值四舍五入,以便在TextBox中顯示。
我們需要的是這樣的:
雙值:39621443.8975101998
字符串值:39621443.8975101998
但是我們得到的是:
雙值:39621443.8975101998
字符串值:39621443.8975102
我們已經對其進行了谷歌搜索並嘗試了許多方法,但是沒有一個有效
任何幫助將不勝感激
如果您想要具有那么多小數位數的精確值,則應使用精度更高的Decimal
數據類型,然后使用double
。 使用decimal.Parse(str)
。
正如@PetSerAl指出的那樣,兩個值(以IEEE 754雙精度浮點數表示 )是相同的。
39621443.8975101998 => 0x4182E49A1F2E19D4
39621443.8975102 => 0x4182E49A1F2E19D4
39621443.897510199800000123456789 => 0x4182E49A1F2E19D4
資料來源: BinaryConvert.net 。
RoundTrip在這里無濟於事-這是雙精度的極限 。
您將需要其他數據類型,例如@magnus建議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.