标签: int

为什么我可以将1作为短路,而不是int变量i?

为什么第一个和第二个写入工作但不是最后一个?有没有办法我可以允许所有3个并检测它是1,(int)1还是我传入?真的为什么一个允许但最后一个?第二个被允许但不是最后一个真的让我大吃一惊.

演示显示编译错误

using System;
class Program
{
    public static void Write(short v) { }
    static void Main(string[] args)
    {
        Write(1);//ok
        Write((int)1);//ok
        int i=1;
        Write(i);//error!?
    }
}
Run Code Online (Sandbox Code Playgroud)

c# int compiler-errors type-conversion implicit-conversion

147
推荐指数
4
解决办法
5996
查看次数

在Java中将int转换为二进制字符串表示形式?

在Java中将int转换为二进制字符串表示形式的最佳方法(理想情况下,最简单)是什么?

例如,假设int是156.二进制字符串表示为"10011100".

java string binary int

143
推荐指数
9
解决办法
26万
查看次数

如何检查字符串是否为int,而不是double等?

PHP有一个intval()将字符串转换为整数的函数.但是,我想事先检查字符串是否为整数,以便我可以向用户提供有用的错误消息,如果它是错误的.PHP有is_int(),但是对于字符串,它返回false "2".

PHP具有该is_numeric()函数,但如果该数字为double,则返回true.我想要一个会为double返回false的东西,但是对于int来说是真的.

例如:

my_is_int("2") == TRUE
my_is_int("2.1") == FALSE
Run Code Online (Sandbox Code Playgroud)

php string int types casting

141
推荐指数
9
解决办法
8万
查看次数

如何优雅地检查一个数字是否在一个范围内?

如何使用C#和.NET 3.5/4优雅地完成这项工作?

例如,数字可以在1到100之间.

我知道一个简单的就足够了; 但这个问题的关键词是优雅.这是我的玩具项目不是为了生产.

这个问题不是关于速度,而是关于代码美.停止谈论效率等等; 记住你正在向合唱团讲道.

c# int numbers

141
推荐指数
11
解决办法
31万
查看次数

NumPy或Pandas:将数组类型保持为整数,同时具有NaN值

是否有一种首选方法可以将numpy数组的数据类型固定为int(int64或者其他),同时仍然将内部元素列为numpy.NaN

特别是,我正在将内部数据结构转换为Pandas DataFrame.在我们的结构中,我们有整数类型的列仍然有NaN(但列的dtype是int).如果我们把它变成一个DataFrame,它似乎将所有东西重铸为浮点数,但我们真的很喜欢int.

思考?

事情尝试:

我尝试使用from_records()pandas.DataFrame下的函数coerce_float=False,但这并没有帮助.我也尝试使用带有NaN fill_value的NumPy掩码数组,这也没有用.所有这些都导致列数据类型变为浮点数.

python int numpy type-conversion pandas

140
推荐指数
6
解决办法
5万
查看次数

我可以将long转换为int吗?

我想转换longint.

如果long> 的值int.MaxValue,我很乐意让它环绕.

什么是最好的方法?

c# int types type-conversion long-integer

136
推荐指数
6
解决办法
20万
查看次数

Java汇总了任何数字

我似乎无法找到一个关于一个简单问题的答案:如何将任何数字四舍五入到最近int

例如,每当数字为0.2,0.7,0.2222,0.4324,0.9999时,我希望结果为1.

到目前为止我有

int b = (int) Math.ceil(a / 100);
Run Code Online (Sandbox Code Playgroud)

但它似乎并没有完成这项工作.

java math int rounding

136
推荐指数
4
解决办法
29万
查看次数

将int转换为std :: string

将int转换为字符串的最短路径是什么,最好是内联的?使用stl和boost的答案将受到欢迎.

c++ string int

131
推荐指数
7
解决办法
22万
查看次数

在C#中将char转换为int

我在c#中有一个char:

char foo = '2';
Run Code Online (Sandbox Code Playgroud)

现在我想把2变成一个int.我发现Convert.ToInt32返回char的实际十进制值而不是数字2.以下将起作用:

int bar = Convert.ToInt32(new string(foo, 1));
Run Code Online (Sandbox Code Playgroud)

int.parse也适用于字符串.

C#中没有本地函数从char到int而不是字符串吗?我知道这是微不足道的,但似乎很奇怪,直接进行转换没有任何原生的东西.

c# int char

129
推荐指数
10
解决办法
31万
查看次数

在C#中将float转换为int时的奇怪行为

我有以下简单的代码:

int speed1 = (int)(6.2f * 10);
float tmp = 6.2f * 10;
int speed2 = (int)tmp;
Run Code Online (Sandbox Code Playgroud)

speed1和speed2应该具有相同的值,但事实上,我有:

speed1 = 61
speed2 = 62
Run Code Online (Sandbox Code Playgroud)

我知道我应该使用Math.Round而不是cast,但我想了解为什么值不同.

我查看了生成的字节码,但除了存储和加载外,操作码是相同的.

我也在java中尝试了相同的代码,我正确地获得了62和62.

有人可以解释一下吗?

编辑: 在实际代码中,它不是直接6.2f*10而是函数调用*常量.我有以下字节码:

速度1:

IL_01b3:  ldloc.s    V_8
IL_01b5:  callvirt   instance float32 myPackage.MyClass::getSpeed()
IL_01ba:  ldc.r4     10.
IL_01bf:  mul
IL_01c0:  conv.i4
IL_01c1:  stloc.s    V_9
Run Code Online (Sandbox Code Playgroud)

速度2:

IL_01c3:  ldloc.s    V_8
IL_01c5:  callvirt   instance float32 myPackage.MyClass::getSpeed()
IL_01ca:  ldc.r4     10.
IL_01cf:  mul
IL_01d0:  stloc.s    V_10
IL_01d2:  ldloc.s    V_10
IL_01d4:  conv.i4
IL_01d5:  stloc.s    V_11
Run Code Online (Sandbox Code Playgroud)

我们可以看到操作数是浮点数,唯一的区别是stloc/ldloc

至于虚拟机,我尝试使用Mono/Win7,Mono/MacOS和.NET/Windows,结果相同

c# floating-point int expression casting

127
推荐指数
3
解决办法
2万
查看次数