我在C#中有一个字符串变量,它将是字符串格式的'单个'数据类型编号,如'.11'或'0.11'或'12 .11等。
我的问题:如果上述变量中的小数点前没有指定数字,我需要用前导'0'填充上面的字符串。我将如何以最有效的方式在C#中执行此操作?因此,如果变量为'12 .11'则不需要填充。
string newValue = null;
string searchFieldValue1 = ".11";
//set new value according to this logic: pad it with a leading 0 so its 0.11
答案 0 :(得分:1)
newValue = searchFieldValue1.StartsWith(".")
? "0" + searchFieldValue1
: searchFieldValue1;
答案 1 :(得分:1)
您只需测试第一个字符是否为'.'
:
string searchFieldValue1 = ".11";
string newValue = searchFieldValue1;
if (newValue[0] == '.')
newValue = "0" + newValue;
string searchFieldValue1 = ".11";
string newValue = (searchFieldValue1[0] == '.' ? "" : "0") + searchFieldValue1;
但可能最好的方法是简单地将字符串解析为数字,然后将其转换回具有正确格式的字符串(有关详细信息,请参阅Custom Numeric Format Strings):
string searchFieldValue1 = ".11";
string newValue = float.Parse(searchFieldValue1).ToString("0.00");
此方法还会删除不必要的前导零,并确保结果在小数点后正好有2位数(例如001
→1.00
)