我在数据库中存储打折折扣的列是浮点型,check约束,范围是0-1……
然后我在程序中是通过String型来显示这个折扣的,表示为XXX.XX%从数据库中浮点型到字符串型的转换是采用String.ValueOf(float)+%这样来表现的……
从字符串型转换到数据库中的浮点型的时候又应该怎么来弄呢?
我暂时想到的是把字符串按字符数组处理,把%前面的全部抠出来作为一个字符串,然后再变成浮点型……但是呢,这样做整个算法过程我觉得是很失败的……谁有更加好好点的方案么?学习下……
或者说,如果是你来设计数据库和程序的话,要实现这样的转换功能的话~~谢谢大家先了……

解决方案 »

  1.   

    把%前面抠出来 然后new Double(str)一个double……
    没想到其它做法
      

  2.   

    用不到字符数组的说 截字串
    String str="1234.45%";
    str=str.substring(0,str.length()-1);
    new Double(str);
      

  3.   

    感谢tdgwj……不过,你对于整个从数据库到程序,再从程序到数据库的流程还有什么更加好的方案么?……谢拉……
      

  4.   

    我是新手呢。。
    不了解你的业务需求
    感觉。。0%~1%的折扣有点怪异! 应该是0%~100%之间的吧?
    数据库中可以考虑用0~100的money(SQLServer)存储,程序中直接用double存,
    页面显示加%就好了。  如100%即全价、0%不要钱~
      

  5.   


    目前的计算机,处理float与处理double的速度相差无几,呵呵。一般还是建议使用double。
      

  6.   

    楼上的,能解释下为什么建议使用双字节存储的类型么?我是因为还考虑到一个存储效率的问题所以才决定使用Float型的……
      

  7.   

    float精度不够高 用起来容易出问题 所以一般都用double
      

  8.   

    额。。感觉麻烦了点。。呵呵
    都是浮点数 还不如直接存储0~100呢!
    另外 数据库中用float也容易出问题 最好用numeric、money之类的