簡體   English   中英

將字符串轉換為雙“切”0

[英]Converting string to double “cuts” 0

我在將字符串轉換為double時遇到問題,當我在本地計算機上運行它時它工作正常但是當我將它部署到服務器時它在前面“削減”0。 例如,我的字符串值為0,0123,當我將其轉換為double時,我得到123.我使用ASP.NETC# ,我使用的方法是Convert.ToDouble() ,托管是somee.com。

現在我只是將數字除以10000得到我需要的東西,但你可以想象它不是完美的解決方案所以也許有人更好地了解如何解決它。

這是因為您的機器和服務器正在使用兩種不同的文化。

有些文化使用“。” 作為小數點,而其他人使用“,”。 似乎在您的服務器文化中,“。” 是小數點 - 因此“0,0123”中的逗號被視為千位分隔符。

我將使用double.TryParseConvert.ToDouble的重載,它接受IFormatProvider並傳入正確的CultureInfo

將來,請嘗試使用CultureInfo.InvariantCulture格式化所有內部數據(即數據持久性或系統中的數據流),並使用正確的CultureInfo向用戶顯示數據。

小數點在不同文化之間是不一樣的,因此,具有不同文化背景的計算機。

嘗試使用double.Parse(string, CultureInfo)和一個適用於您的格式的顯式CultureInfo

根據您將值表示為0,0123而不是0.0123的事實,我猜測服務器上的語言/文化設置與您自己的計算機上的語言/文化設置不同。

嘗試從服務器上的某個位置打印出System.Globalization.CultureInfo.CurrentCulture.Name的結果,並將其與本地計算機生成的結果進行比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM