代码之家  ›  专栏  ›  技术社区  ›  Duncan

字符串。十进制值的格式阻塞?

  •  4
  • Duncan  · 技术社区  · 14 年前

    我希望下面的两个测试(为NUnit编写)都能通过,但是十进制版本失败,出现“System.FormatException:Format说明符无效”和双精度版本一样。我不明白为什么。有人能帮我亮灯吗?

    谢谢;

    [Test]
    public void Integer_Format_Hex()
    {
        //Assume
        Int32 myValue = 11101110;
    
        //Arrange
    
        //Act
    
        //Assert
        Assert.That( String.Format( "0x{0:X8}" , myValue ) , Is.EqualTo( "0x00A963B6" ) );
    }
    
    [Test]
    public void Decimal_Format_Hex()
    {
        //Assume
        Decimal myValue = 11101110m;
    
        //Arrange
    
        //Act
    
        //Assert
        Assert.That( String.Format( "0x{0:X8}" , myValue ) , Is.EqualTo( "0x00A963B6" ) );
    }
    
    [Test]
    public void Decimal_Format_Hex2()
    {
        //Assume
        Decimal myValue = 11101110m;
    
        //Arrange
    
        //Act
    
        //Assert
        Assert.That( myValue.ToString( "X" ) , Is.EqualTo( "00A963B6" ) );
    }
    
    1 回复  |  直到 14 年前
        1
  •  8
  •   Duncan    14 年前

    行使 http://msdn.microsoft.com/en-us/library/fzeeb5cd(v=VS.90).aspx

    “format参数可以是任何有效的标准数字格式说明符 除了D,R和X

    令人惊叹的。