根據以下規則,將十進制值轉換爲字符串的優雅方法是什麼?使用非常規規則格式化十進制值
- 顯示在小數點前面的所有數字。
- 顯示一個逗號,而不是小數點。
- 如果小數點後的部分爲非零值,只顯示顯著位,但用最小的2.
實例:
decimal string
------------ ----------
500000 500000,
500000.9 500000,90
500000.90 500000,90
500000.900 500000,90
500000.9000 500000,90
500000.99 500000,99
500000.999 500000,999
500000.9999 500000,9999
我可以很容易地小數點前顯示部和逗號,通過將值轉換爲int
。但是,對於小數點後的部分處理不同的情況會變得冗長乏味。
如果有指定的方式,我想只有小數點後,但沒有小數點,我手上有這個。類似於String.Format("{0:.00#}", value)
,只顯示小數點。
對InvariantInfo和StringComparison.Ordinal的使用非常感謝。 – ErikE
P.S.你的答案幫我創建了這個函數:'private static int GetNumberOfUsedDecimalPlaces(十進制值){返回值(值 - (int)值).ToString(「0。################ ############「,NumberFormatInfo.InvariantInfo).Replace(」。「,」「).Length - 1; }' – ErikE