我有一個空的浮點數。內部小數位可以用點或逗號分隔,例如1.2或1,2。我需要這個浮點數作爲一個字符串來比較它與正則表達式。如果我使用Convert.toString方法,則逗號爲12的浮點數不是1.2。如何將float轉換爲String而不會丟失逗號或點?我試圖用不同的文化來轉換它。將浮點數轉換爲逗號和點的字符串
感謝您的幫助
我有一個空的浮點數。內部小數位可以用點或逗號分隔,例如1.2或1,2。我需要這個浮點數作爲一個字符串來比較它與正則表達式。如果我使用Convert.toString方法,則逗號爲12的浮點數不是1.2。如何將float轉換爲String而不會丟失逗號或點?我試圖用不同的文化來轉換它。將浮點數轉換爲逗號和點的字符串
感謝您的幫助
帶掩碼的String.Format()函數。但是,爲了比較的目的,你可以將字符串轉換爲數字而不是數字嗎?它是否必須是正則表達式比較?
嘗試:
string s = yourFloat.ToString();
使用固定區域性的建議,如果你想確保你的輸出將是正確的形式,但我會感到驚訝,如果有一個文化,不輸出逗號或一個點。
我也建議而不是使用正則表達式來驗證浮動值。
對於此解決方案可爲以下:
float? num = 1.2f;
string floatAsString = string.Format("{0:f}", num.Value);
也許你需要檢查HasValue
屬性是true
使用前值。更多示例:http://alexonasp.net/samples/stringformatting/
您確定該文本框允許「。」和「,」作爲小數分隔符(與分組字符相對,也稱爲千位分隔符)?
如果您確定只能得到小數點分隔符並且沒有分組字符,請用「。」替換任何「,」。在使用帶有InvariantCulture的TryParse將字符串轉換爲浮點數據之前。
或者在代碼中使用與客戶端相同的文化,因此兩者都使用相同的小數點分隔符。
正如其他人提到的,float沒有各種小數點分隔符的概念。
如果它是WinForm應用程序,則有一個靜態變量Application.CurrentCulture.NumberFormat.NumberDecimalSeparator
。
根據它的值,在轉換ToString()
時會得到不同的結果。 嘗試操作此參數以獲得必要的結果。
好的我解決了這個問題。我在我的xaml中做了一個轉換器,它只允許用逗號作爲分隔符輸入值,所以如果只有兩個內部小數位,我不需要任何檢查。感謝您的幫助
和1.200,00應該被解析爲? – SWeko 2010-12-06 13:35:58
爲什麼1,2應該是12? – VVS 2010-12-06 13:39:33
float是一個百分比,所以它只能取值從0,00到100,00或0.00到100.00 – holzleube 2010-12-06 13:53:53