![](/img/trans.png)
[英]Convert a string containing a numeric value to the same string with different culture settings while preserving the original format
[英]Same Culture, different value conversions
我的網站從文本文件中提取數據到數據庫中。 讀取數據后,我將字符串值轉換為雙精度值,使用:
oracom.Parameters.Add("nstpreisvm", OracleDbType.Double).Value = Convert.ToDouble(_material.Mat_StPreisVm);
如果我現在檢查數據庫中的結果(該列需要NUMBER
格式),我會得到兩個不同的值:在通過 Visual Studio 2010 的本地主機上,數據庫返回10,15
- 但是如果我在網絡服務器上進行處理, 數據庫只顯示10
. 這是怎么發生的?
我現在在網站上實現了一個小標簽,在頁面加載上用當前的文化填充它:
label.Text = Thread.CurrentThread.CurrentCulture.ToString();
CurrentCulture
在這兩個實例中都是en-GB
,那么這里的問題是什么? 我錯過了什么嗎?
我的本地windows是Win7 SP1,帶德語語言包,服務器是Win2008 R2,標准英文安裝。
我們在客戶服務器上遇到了類似的問題,客戶手動更改了該服務器上特定文化的小數點分隔符。 您可以使用以下方法檢查:
Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator
我建議在解析時明確指定小數點分隔符:
Double.Parse("1,25", new NumberFormatInfo(){ NumberDecimalSeparator = "," });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.