簡體   English   中英

相同的文化,不同的價值轉換

[英]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.

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