免责声明:这个问题可能没有实际价值,更多的是一个谜题/好奇心问题.
在Java中,我可以编写以下代码以编程方式查找int的大小:
public static void main(String[] args) { int x = 1; int count = 1; while((x = x << 1) != 0) { count++; System.out.println("x: " + x + "," + count); } System.out.println("size: " + count); }
有没有类似的方法以编程方式找到Java浮点数的大小?
解决方法
将float写入ByteArrayOutputStream并获取结果的长度.
import java.io.*; class Test { public static void main(String[] args) throws Exception { ByteArrayOutputStream baos =new ByteArrayOutputStream(); DataOutputStream dos=new DataOutputStream(baos); dos.writeFloat(0f); System.err.println(baos.toByteArray().length); } } $javac Test.java $java Test 4