我有一個浮點值是這樣的:0.60000002384185791 我想這個值轉換爲字符串是這樣的:0.60000002384185791(完全一樣 - 沒有科學記數法或剪下精度)如何將分數值轉換爲字符串「原樣」?
但每當我嘗試轉換這個值的字符串,它給了我「0.600000023841858」
代碼:
Dim ddd As Decimal = 0.60000002384185791 '//This value is coming from some method and it may be different like 0.6000000238418579123456789012 or 102020.6000000238418579123456789012
Dim myVal as string = " Your Value is : " & ddd.ToString() '//This truncates actual value to 0.600000023841858
是否有任何方法可以將該值「按原樣」轉換(沒有科學記號並且沒有削減精度)?
它在C#中運行良好,但我需要Visual Basic中的解決方案。與語言有什麼關係(我不希望)。
添加d的號碼,它是一個小數?可能會被視爲浮點數並在編譯時被截斷 –
正如@SamiKuhmonen所說,您示例中的問題是您的常量'0.60000002384185791'是一個不能容納這麼多數字的Double。設置「Option Strict On」禁止自動轉換,並確保您從「某些方法」獲得的值永遠不會轉換爲double。 – Blackwood
@SamiKuhmonen,@Blackwood: 我也這樣做過,但沒有運氣。其實我的雙'擁有這個價值。當我將鼠標懸停在它上面時,它顯示出正確的值,即'0.60000002384185791'但是如果我將函數返回類型更改爲'Decimal',它只會返回'06D'。 –