【问题标题】:String.Format is not formatting correctlyString.Format 格式不正确
【发布时间】:2021-08-09 19:25:12
【问题描述】:

我有以下代码,但无法正确格式化。它忽略了我的格式。例如 sOrderNo 不是 10 个零,它只有 1 个零。我在这里做错了什么?

sKey = String.Format("{0:D10} {1:00} {2} {3} {4} {5}   {6} {7} {8:000.0000} {9:000.0000}",
       sOrderNo, sItem, sSpecies, sSpSort, rs.Fields("UsageCode").Value,
       rs.Fields("Cure").Value, sGrade, sSurface, 
       rs.Fields("TkFactor").Value,rs.Fields("WdFactor").Value)
                             

【问题讨论】:

    标签: vb.net string.format


    【解决方案1】:

    sOrderNo 不是 10 个零,

    为此必需的格式字符串是D10,而不是10D。闲置古玩:the documentation 意味着只能达到 D9,但它适用于 10 和 all the way to 99 even

        Console.WriteLine(string.Format("Hello World {0:D99}", 12345));
    

    【讨论】:

    • {0:D10} 也不起作用,{1:D2} 或 {1:00} 也不适用于 sItem。我能够通过以下方式得到我需要的东西:“{0} {1} etc...,”、Cint(sOrderNo).ToString("D10")、Cint(sItem).ToString("D2") 等。 ..只是不明白为什么上面的原始代码即使使用更正的 D10 也不起作用。
    • sOrderNo 必须是数字,而不是数字字符串..
    • 在我的“一直到 99”链接中,您会注意到我传递了一个整数 12345,而不是字符串“12345”。您可以对字符串做的唯一事情是向左或向右用空格填充它们,例如使用 {0:-50}{0:50} 表示“填充到 50 宽”,减号/加号指示字段中字符串的对齐方式跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多