通过数学运算执行从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