[英]C# String format: escape a dot
我有一行代碼,如:
mbar.HealthLabel.text = String.Format("{0:0.0}", _hp);
輸出為:例如2.25。 是否可以使用String.Format函數從輸出字符串視圖中轉義一個點?
對於。 恩。 225,
為了使我的問題更清楚,我需要同樣的效果,如:
Math.Floor(_hp * 100).ToString();
但需要通過String.Format
模板來做..謝謝。
你可以這樣做
double value = 1.25;
var stringValue = string.Format("{0:0}", value * 100, CultureInfo.InvariantCulture); //125
編輯:更一般的解決方案是Replace
注釋中所述的空字符串Replace
點。
double value = 1.25;
var stringValue = value.ToString(CultureInfo.InvariantCulture).Replace(".",string.Empty);
編輯2:還有另一個一般的想法 ,不使用Replace
功能(但它也不使用String.Format
)
var stringValue = string.Join("", value.ToString().Where(char.IsDigit));
另外一個類似的想法:
var stringValue = new string(value.ToString().Where(char.IsDigit).ToArray());
首先,請閱讀我對該問題的評論。 正如我在那里提到的,數值的字符串格式取決於區域設置。 所以,在線以下
mbar.HealthLabel.text = String.Format("{0:0.0}", _hp);
將返回: 2,25 (關於波蘭數字標准)
在我看來,你需要這樣的東西:
mbar.HealthLabel.text = String.Format("{0:D}", Math.Floor(_hp*100));
有關詳細信息,請參閱:
當我們只允許修改格式字符串(“template”)時,無法解決這個問題。 所有解決方案都要求:
如果你想消除十進制separtor(“逃避點”,就像你說的那樣),嘗試用 空字符串 替換小數分隔符 :
string result = String
.Format("{0:0.0}", _hp)
.Replace(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator, "");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.