我怎么分int100?
例如:
int x = 32894;
int y = 32894 / 100;
Run Code Online (Sandbox Code Playgroud)
为什么这会导致y存在328与否328.94?
Jon*_*eet 18
当一个整数被另一个整数除时,算术作为整数运算执行.
如果希望它以float,double或decimal算术执行,则需要适当地转换其中一个值.例如:
decimal y = ((decimal) x) / 100;
Run Code Online (Sandbox Code Playgroud)
请注意,我也改变了类型y- 执行十进制算术然后将结果存储在一个中是没有意义的int.将int不可能储存328.94.
您只需要将其中一个值强制为正确的类型,然后另一个将被提升为相同的类型 - 例如,没有运算符定义将小数除以整数.如果你使用多个值执行算术运算,你可能想要将它们全部强制转换为所需的类型 - 为了清楚起见 - 使用整数运算执行一个操作是不幸的,而另一个运算使用双算术运算则是不幸的.预计两者都是双倍的.
如果您正在使用文字,则可以使用后缀来指示类型:
decimal a = x / 100m; // Use decimal arithmetic due to the "m"
double b = x / 100.0; // Use double arithmetic due to the ".0"
double c = x / 100d; // Use double arithmetic due to the "d"
double d = x / 100f; // Use float arithmetic due to the "f"
Run Code Online (Sandbox Code Playgroud)
至于你是否应该使用decimal,double或者float,这取决于你想要做什么.阅读我关于十进制浮点和二进制浮点的文章.double如果你正在处理"自然"量,如身高和体重,通常是合适的,其中任何值都将是一个近似值; decimal适用于人工数量,例如货币,通常用十进制值表示.