BigDecimal有转字节数组的API吗,没找到

解决方案 »

  1.   

    请教下具体的计算过程, 目的是将float类型转为4字节数组
      

  2.   

    请教下具体的计算过程, 目的是将float类型转为4字节数组固定4个字节啊?不知道你说的API是否支持字符串转数组呢?
      

  3.   

    请教下具体的计算过程, 目的是将float类型转为4字节数组固定4个字节啊?不知道你说的API是否支持字符串转数组呢?
    字符串转数组很简单啊,"12345".getBytes() 就是了,但是长度就变成10字节了,
    int float直接转字节数组的话,4个字节就可以存储
      

  4.   

    float类型只有7~8位精度,你把一个超过float精度的数给float时精度就丢失了,并不是在你转换的时候丢失的。
    float f = 282734.2235555f;
    System.out.println(f);
    上面代码输出282734.22
    实际上上面的代码编译的时候就已经丢失精度了,上面编译过后的字节码是
    LDC 282734.22
    FSTORE 1
    可以看到精度已经没了如果要超过8位精度,请用double,不过double也只有十几位精度,如果还不能满足你的要求,那你只能用BigDecimal了。
      

  5.   

    请教下具体的计算过程, 目的是将float类型转为4字节数组固定4个字节啊?不知道你说的API是否支持字符串转数组呢?
    字符串转数组很简单啊,"12345".getBytes() 就是了,但是长度就变成10字节了,
    int float直接转字节数组的话,4个字节就可以存储
    嗯,float操作来操作去的,总是会丢失精度,所以才建议转为String,但是这边又要求4位定长,就不知道怎么搞了。。
      

  6.   

    一般解决小数问题如果类型有限制,可以转化为整数,结果再转化为小数
    比如:float a=282734.2235555f;
                double b=a*100000000;
    传输数据b,接收数据之后再除以100000000,
    对于传输数据类型判断,这个就要在协议中加标识了