通過數學運算執行從byte
到double
的轉換時,我得到了預期的結果。 只要我保持double
類型,執行相同的數學運算以逆轉數值的變化,結果爲正確的值。 但是,當在端部餘轉換double
結果反饋給byte
值轉換結果是由1雙倍字節類型轉換錯誤
不正確這僅僅是爲了某些byte
值的情況。
確切的過程:
byte b = 82; Console.WriteLine(b); // initial byte value
double d = (b/100.0) + 2.00; Console.WriteLine(d); // 82/100 -> 0.82 + 2.00 -> 2.82 OK
double dt = d - 2.00; Console.WriteLine(dt); // 2.82 - 2.0 -> 0.82 OK
double db = dt * 100.0; Console.WriteLine(db); // 0.82 * 100 -> 82 (double) OK
byte dbb = (byte)db; Console.WriteLine(dbb); // (byte)82 -> 81 ERROR ERROR ERROR
b = Byte.Parse(db.ToString()); Console.WriteLine(b); // 82 -> "82" and to byte OK
爲什麼它是怎麼回事? double
結果在逗號後沒有任何值。
我給你一個鏈接到另一個話題在stackoverflow - 這將解釋它更詳細一點 - 十進制將解決你的問題 – TripleEEE