在C#中
float ratio = 185 / srcRect.Width;
其中srcRect.Width = 400
返回0
,返回0.45
...
float的最小值是-3.40282347E+38
,那么这怎么可能呢?
答案 0 :(得分:14)
您正在执行整数除法,因此185/srcRect.Width
将返回0.您需要将表达式更改为
float ratio = 185.0f / srcRect.Width;
答案 1 :(得分:0)
185是整数字面值,因此执行的除法是整数除法。
要执行浮动除法,请改用185.0或185.0f(前者是双精度型,后者是浮点型)
答案 2 :(得分:0)
“f”或“d”后缀可以添加到文字数字中,分别将它们变成浮点数或双打数。
像这样:
float ratio = 185f / srcRect.Width;
请注意,“185.0”实际上是双倍的,除非它还有“f”后缀。