最近我在 webkit 资源中发现了这个有趣的东西,与颜色转换(hsl to rgb)有关:
http://osxr.org/android/source/external/webkit/Source/WebCore/platform/graphics/Color.cpp#0111
const double scaleFactor = nextafter(256.0, 0.0); // it's here something like 255.99999999999997
// .. some code skipped
return makeRGBA(static_cast<int>(calcSomethingFrom0To1(blablabla) * scaleFactor),
(int)(value * 255.999999)
使用这种技术是否正确?为什么不直接使用圆形(blabla * 255)之类的东西?它是 C/C++ 的特性吗?正如我所看到的,严格来说,在 27 个 100 个案例中返回的结果并不总是正确的。请参阅https://docs.google.com/spreadsheets/d/1AbGnRgSp_5FCKAeNrELPJ5j9zON9HLiHoHC870PwdMc/edit?usp=sharing上的电子表格
有人请解释一下——我认为它应该是基本的。