我试图在java中将double转换成无符号int。
对于无符号int,我的意思是从0到4294967295的范围。
我用 int
作为载体-它可以转换成一个字符串与 Integer.toUnsignedString
.
我不在乎我得到什么结果如果
双人房是 NaN
.
双人房是 Inf
或者 -Inf
双人床超出范围: < 0
或者 > 4294967295
.
只要我有结果。
简单的强制转换不起作用:
(int) 4294967295d == 2147483647
(int) 2147483648d == 2147483647
所以有问题的范围是 2147483648d
- 4294967295d
.
有没有一种快速的方法来正确覆盖这个范围?
热释光;医生:在c语言中我会用 (unsigned int) dblValue
-在java中我会用什么来实现这一点?
1条答案
按热度按时间oknwwptz1#
4294967295f
那不是一件事。浮动不存在。它变圆了。不要用浮子,它们几乎没有意义。它起双重作用。有没有一种快速的方法来正确覆盖这个范围?
一旦你意识到你的问题毫无意义,就换成双打,是的。转换为long,转换为int: