我有一行代码,是这样的:C#字符串格式:逃脱点
mbar.HealthLabel.text = String.Format("{0:0.0}", _hp);
输出为:2.25例子。使用String.Format函数可以从输出字符串视图中转义一个点吗?
对于。恩。 225,
为了使我的问题更清楚,我需要像同样的效果:
Math.Floor(_hp * 100).ToString();
但需要通过String.Format
模板来做到这一点..谢谢。
我有一行代码,是这样的:C#字符串格式:逃脱点
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
与作为评论说空串点。
double value = 1.25;
var stringValue = value.ToString(CultureInfo.InvariantCulture).Replace(".",string.Empty);
EDIT2:也有another general idea不使用Replace
功能(但也不会使用String.Format
)
var stringValue = string.Join("", value.ToString().Where(char.IsDigit));
也是另一个类似的想法:
这就是我在这个问题的评论中完全建议的内容。 –
是的,发送的时间显示我们两个正在同时考虑同一个解决方案。 –
@HosseinNarimaniRad:我假设(希望?),这只是对你答案的认可,而不是任何形式的复制指责。 – Chris
如果你想消除小数部分(“e景观点”,因为你已经把它),尝试用空字符串更换小数点分隔符:
所有的string result = String
.Format("{0:0.0}", _hp)
.Replace(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator, "");
首先,请阅读我的问题发表评论。正如我在那里提到的,数字值的字符串格式取决于区域设置。所以,下面的线
mbar.HealthLabel.text = String.Format("{0:0.0}", _hp);
将返回:2.25(如波兰数字标准)
在我看来,你需要这样的事:
mbar.HealthLabel.text = String.Format("{0:D}", Math.Floor(_hp*100));
对于furhter细节请参阅:
至于Microsoft.NET Framework 4.7,当我们只允许修改格式字符串(“模板”)时,没有办法解决这个问题。所有解决方案都需要:
什么是原始字符串中' _hp'? –
为什么需要使用String.Format的任何特定原因? – PaulF
试着做_hp.Replace(“。”,“”),它用空字符串 – Praveen