我有一個十進制值,它存儲在我的數據庫(SQL Server 2008中)與13精度,以及10文化爲基礎的字符串格式化十進制
例子規模:
10.6157894734
68.0750000000
96.8723684210
基本上,數字代表一個「得分」出100
現在,我想顯示/表示該值以不同的方式,這取決於培養。
例如,在AU中,我想顯示100以外的值,四捨五入到小數點後兩位。
所以在上面的例子:
10.62
68.08
96.87
但在美國,我想顯示出值爲10,四捨五入至小數點後1位。 所以在上面的例子:
1.1
6.8
9.7
這個問題能有一個資源文件來完成,比如做這樣的事情:
return score.ToString(Resources.Global.ScoreFormat);
凡可以存儲爲「###」。 in en-US,但「#。#」 in en-AU?
我很確定它不能,因爲我不只是四捨五入,而是使用數學轉換? (例如AU值爲10)但是我想我會問這個問題。
我試圖避免一個醜陋的if語句,它檢查當前的文化,並手動進行數學/舍入。
希望'1.6'是一個錯字,實際上是'1.1'? – V4Vendetta 2012-04-02 06:31:34
@ V4Vendetta - 哈哈,是。 – RPM1984 2012-04-02 06:32:00
我想這個問題不是關於爲類分數所屬的實現自定義的ToString,能夠處理你需要的東西......雖然......如果「格式化程序」可以觸發類的方法來處理要格式化的數據,例如「#{CountryDepFmt}」將實例化CountryDepFmt(符合一些已知的接口),該接口將返回格式化的值並且也可以進行某種操作。如果區域是Au返回(值/ 10).ToString(「#。#」);或者任何正確的C#語法。 – ShinTakezou 2012-04-02 06:44:11