質問

以下の両方のテスト(nunit用に書かれた)が合格すると予想されますが、小数バージョンは「System.Formatexception:フォーマット仕様が無効でした」で失敗します。理由がわからない。誰かが光を落としてくれませんか?

ありがとう;ダンカン

[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" ) );
}
役に立ちましたか?

解決

からの出現 http://msdn.microsoft.com/en-us/library/fzeeb55cd(v=vs.90).aspx

「フォーマットパラメーターは、有効な標準数値形式の仕様にすることができます d、r、xを除く...."

素晴らしい。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top