2016-08-09 9 views
2

に異なる値を返す:Math.Sinhは()私は私のプログラムでこのコードをお持ちのC#

Math.Sinh(myvalue).ToString() 

コードの上の窓8にInfinityを返し、窓10でを返します。

なぜ2つの異なる値が返されますか?

+4

値は同じ 'double.PositiveInfinity'です。文字列表現だけが光沢のある「∞」に変更されました。 –

+0

私はこれを使ってデータを暗号化しているので、暗号化の鍵となります。これどうやってするの ? –

+0

ビジュアル表現が何であっても、結果が無限になるとデータを暗号化するのは非常に難しいでしょう! –

答えて

4

Math.Sinh(myvalue)の戻り値は、依然として同じdouble.PositiveInfinityです。特殊なdouble値の文字列表現を含むリソースファイルがWindows 10で変更されたので、今度は無限記号を返すと仮定します。

double sinh = Math.Sinh(myvalue); 
string v = double.IsInfinity(myvalue) ? "Infinity" : myvalue.ToString(); 

または単にチェック:あなたのコード(実際にはカルチャ固有の文字列表現に依存するのは良い考えではありません)古い方法を維持したい場合は

は、あなたがこのような何かを考えることができますToString()の戻り値がの場合はそれに応じて変更してください。

しかし、確認する必要がある特別な二重の値がいくつかあることに注意してください。

関連する問題