一般在C#里获取类型长度都是要转换成string类型用length获取长度,能不能不转换成string类型获取类型长度。假如我现在有个double类型的值,长度是19位,转换成string类型就会变为17位。能不能直接获取double的长度。

解决方案 »

  1.   

    运行时对象的长度不是固定的。
    对简单值类型 int long 之类的还可以固定。
    但是对其他类型就未必了。。
    C#里最好别按章C++的那种方式获取程度。很多时候是没意义的。
    同类型的不同对象长度未必一致的。
    而且 一个类型对象占用的存储空间也不只是简单字节那么少。比如
    public class A
    {
       public int va=100;
       public long vb=3000;
    }
    他的占用空间 不只是 4字节一个INT加上8字节一个LONG如果成员包括数组 字符串更没准了。如果想确定一个一个类型的存储大小 以便传输或者其他操作,可以尝试序列化它。
      

  2.   

    或者 用BITCONVERT 去 getBytes(obj)
    获取他的字节数组。
      

  3.   

    double类型长度越界,  double最大17位。 不是toString的问题