-1
私は単に質問しています。 このテストはどのように失敗しますか?コメントでは、変数の値ですdouble.MaxValue to stringは変換されていませんback
[Fact]
public void ToNullableDouble_CorrectInput_ReturnsCorrectValue()
{
double expectedValue = double.MaxValue; //1.7976931348623157E+308
string expectedValueString = expectedValue.ToString(); //"1,79769313486232E+308" - fail, I do not know why
string expectedValueString2 = expectedValue.ToString(CultureInfo.InvariantCulture); //"1.79769313486232E+308" - fail
string expectedValueString3 = 1.75.ToString(); //"1,75" - pass
string expectedValueString4 = 1.75.ToString(CultureInfo.InvariantCulture); //"1.75" - fail because of the culture
double number;
double? convertedValue = double.TryParse(expectedValueString, out number) ? number : (double?)null;
//convertedValue = null, number = 0
Assert.True(convertedValue.HasValue);
}
フロートは、小数点以下はokです、かなり同じように動作します。私は小数点以下の型の違いを知っています。しかし、どのようにしてMaxValue定数を変換しないのか分かりません。他の値について
double.TryParse(expectedValueString, out number) ? number : (double?)null;
null
double.TryParse(expectedValueString2, out number) ? number : (double?)null;
null
double.TryParse(expectedValueString3, out number) ? number : (double?)null;
1.75
double.TryParse(expectedValueString4, out number) ? number : (double?)null;
null
が正しく動作例えば問題が原因double.MaxValueが文字列に変換されたという事実のために可能性がある。:1.75
何を失敗していますか? – mybirthname
convertedValueはnullであり、doubleでなければなりません.MaxValue – Marv
以下の理由を説明します。 – mybirthname