2010-12-06 146 views
4

我有一個空的浮點數。內部小數位可以用點或逗號分隔,例如1.2或1,2。我需要這個浮點數作爲一個字符串來比較它與正則表達式。如果我使用Convert.toString方法,則逗號爲12的浮點數不是1.2。如何將float轉換爲String而不會丟失逗號或點?我試圖用不同的文化來轉換它。將浮點數轉換爲逗號和點的字符串

感謝您的幫助

+0

和1.200,00應該被解析爲? – SWeko 2010-12-06 13:35:58

+0

爲什麼1,2應該是12? – VVS 2010-12-06 13:39:33

+0

float是一個百分比,所以它只能取值從0,00到100,00或0.00到100.00 – holzleube 2010-12-06 13:53:53

回答

0

帶掩碼的String.Format()函數。但是,爲了比較的目的,你可以將字符串轉換爲數字而不是數字嗎?它是否必須是正則表達式比較?

-1

嘗試:

string s = yourFloat.ToString(); 

使用固定區域性的建議,如果你想確保你的輸出將是正確的形式,但我會感到驚訝,如果有一個文化,不輸出逗號一個點。

我也建議而不是使用正則表達式來驗證浮動值。

0

您確定該文本框允許「。」和「,」作爲小數分隔符(與分組字符相對,也稱爲千位分隔符)?

如果您確定只能得到小數點分隔符並且沒有分組字符,請用「。」替換任何「,」。在使用帶有InvariantCulture的TryParse將字符串轉換爲浮點數據之前。
或者在代碼中使用與客戶端相同的文化,因此兩者都使用相同的小數點分隔符。

正如其他人提到的,float沒有各種小數點分隔符的概念。

0

如果它是WinForm應用程序,則有一個靜態變量Application.CurrentCulture.NumberFormat.NumberDecimalSeparator

根據它的值,在轉換ToString()時會得到不同的結果。 嘗試操作此參數以獲得必要的結果。

0

好的我解決了這個問題。我在我的xaml中做了一個轉換器,它只允許用逗號作爲分隔符輸入值,所以如果只有兩個內部小數位,我不需要任何檢查。感謝您的幫助