确保表示十进制数的字符串在“。”之前为0。

时间:2014-09-09 02:14:00

标签: c# string

我在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

2 个答案:

答案 0 :(得分:1)

newValue = searchFieldValue1.StartsWith(".")
               ? "0" + searchFieldValue1
               : searchFieldValue1;

答案 1 :(得分:1)

您只需测试第一个字符是否为'.'

string searchFieldValue1 = ".11";
string newValue = searchFieldValue1;
if (newValue[0] == '.')
   newValue = "0" + newValue;

或使用conditional operator

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位数(例如0011.00