1. 程式人生 > >DB2浮點數轉換成字串

DB2浮點數轉換成字串

1.比較通用的方法:

SELECT rtrim(cast(111.987 as char(20))) from sysibm.SYSDUMMY1;

在db2 v8,db2 v9.1,db2 v10.1 db2 v10.5都可以用.

注:這種方法無法格式化字串。

2.db2 v9.1及以後的版本:

select trim(replace(strip(replace(char(cast(12.9 as decimal(8,3))),'0.','#'),L,'0'),'#','0.')) from sysibm.sysdummy1;

注:這種方法是在網上找的,可以對資料進行格式化。但是無法處理負數。

如圖


這個結果不是我想要的,正確的應該是:-12.900。

所以對上述方法進行小的調整。

select case when tmp.amnum<0 then '-' || trim(replace(strip(replace(char(tmp.amnum*-1),'0.','#'),L,'0'),'#','0.')) else trim(replace(strip(replace(char(tmp.amnum),'0.','#'),L,'0'),'#','0.')) END from (select cast(-90123.459 as decimal(20,2)) as amnum from sysibm.sysdummy1) as tmp;

就是針對負數,先乘以-1,然後在轉換。

3.db2 v9.5及以後的版本,

直接用varchar_format函式就可以了

SELECT trim(varchar_format(-123,'9999999999999.99')) from sysibm.SYSDUMMY1;

注:varchar_format()函式的具體用法,可以到ibm官網的know center查詢。

db2 v8中的轉換方法沒有研究出來。

相關推薦

DB2點數轉換字串

1.比較通用的方法:SELECT rtrim(cast(111.987 as char(20))) from sysibm.SYSDUMMY1;在db2 v8,db2 v9.1,db2 v10.1 db2 v10.5都可以用.注:這種方法無法格式化字串。2.db2 v9.1及

一個將點數轉換人民幣讀法字串處理(xxxx.xx格式)

主要是加深對陣列的理解在,這個程式原來是《瘋狂java講義》低第103頁上的一個例子,但是例子並不完整,對0的處理和對末位包括小數點後面處理不完整,因此這裡進行了完善。考慮到人民幣通俗叫法,浮點數格式為(XXXX.XX),轉換為字串格式為(x千x百x十x元x角x分),當然還要考慮末位開始位和零的處理

點數轉換人命幣讀法字串 java版

題目:編寫一個程式,將浮點數轉換成人命幣讀法字串,例如,將1006.333轉換成壹仟零陸元叄角叄分 下面是我的解決方案,雖然沒有大神的那麼優秀,但是功能上還是差不多的。測試資料是從別人程式碼那裡賦值過來的。可能 註釋 中存在錯誤。 package t

編寫一個程式,將點數轉換人民幣讀法字串

package crazy.lee.chapter04; import java.util.Arrays; /**  *   * @author Windy46  *  */ public class Question05 {     private String[] ha

點數轉換人民幣讀法字串(JAVA)

public class NumRmb{ private String[] hanArr = {"零" , "壹" , "貳" , "叄" , "肆" , "伍" , "陸" , "柒", "捌" , "玖"}; private String[] unitArr =

點數轉換人民幣讀法字串(整數部分在12位以內)

import java.util.Arrays;   import java.util.Scanner; public class Num2Rmb    {        private  String[] hanArr= {"零" , "壹" , "貳" , "叄" ,

瘋狂java課後習題:把點數轉化字串

這是那本書我自己做的作業,基本實現了功能,但實現方式大家可以交流下,我是很多地方圖了個方便public class NumtoRmb { private String[] hanArr = {"零", "壹", "貳", "叄", "肆", "伍", "律", "柒"

在win32程式中,將點數轉換字串

因為是unicode型別,所以沒有用sprintf()函式,而是以為用wsprintf就可以解決問題了, wsprintf(strValue,L"%f",douValue); 結果怎麼也輸不出結果,除錯看了下,strValue中的值是f,並不是一串數字,在網上查了些資料,發

java程式---將一個點數轉換人民幣讀法

程式碼如下: <span style="font-size:18px;">package test; import java.util.Scanner; //將輸入的浮點型錢數,轉成人民幣讀法 public class Num2Rmb { private

Arduino點數轉換字串---dtostrf

格式如下: char* dtostrf(double _val,signed char _width, unsigned char prec, char* _s) 引數說明: _val:要轉換的f

iOS開發:字典(NSDictionary)和陣列( NSArray)轉換字串

概述: 在專案開發中,總是與伺服器進行著介面的互動,傳參是不可缺少的一部分。後臺返回的j son資料我們可以很好的解析使用,但是我們如何向後臺傳送j son資料的引數呢?要知道,一般伺服器是不允許傳物件的。以下是在專案中遇到的實際問題,在此總結一下,供大家交流。 一. 字典轉字串:

將資料型別轉換字串,將字串轉換資料型別

方法1:採用靜態方法 int a = 123456789; String str = String.valueOf(a); 方法2:用包裝類轉換 float a=2.33f; String str=Float.toString(a); doubl

列印流printStream:列印流可以列印任意資料,而且列印資料之前會先把資料轉換字串再進行列印

package printStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; /* 列印流:(printSt

StringUtils.toAppend 把 list 轉換字串

                                          &nb

一個int常量怎麼轉換字串

今天在工作的時候,我的老師隨口問了我一句,“一個int常量怎麼轉換成字串?”我隨口一答,“用toString方法。”老師說“加個雙引號不就完了嗎。這是Java基礎,回去補一補吧。”   首先,一個我們宣告int a = 1;那麼a是一個常量,它是沒有任何方法的,所以不能用toStr

mysql中int型的數字怎麼轉換字串 以及字串轉換int

MySQL 數字型別轉換函式(concat/cast)。 1、將Int 轉為varchar經常用 concat函式,比如concat(8,’0′) 得到字串 ’80′。 2、將varchar 轉為Int 用 cast(a as signed) a為varchar型別的字串

將一個數組轉換字串

public static String toString(int[] arr) {         StringBuilder str = new StringBuilder();         str.append("[");         for (int i =

點數轉換二進位制

浮點數在計算機中儲存也是以二進位制的形式,遵循IEEE二進位制算數標準;格式為: float : 符號位(首位)、指數位(8位)、尾數(23位) double:符號位(首位)、指數位(11位)、尾數(52位) 一 格式 符號位:0 正數 1 負數 指數位:二進位

時間戳轉換字串程式碼

假設有個time_t型的變數:time64 char chTimeBuf[32] = {0}; struct tm *ptr = localtime(&time64); strftime(chTimeBuf, 32, "%m-%d-%Y %H:%M:%S", ptr

java bool型別轉換字串的一些問題及其延伸

https://www.cnblogs.com/kuangwong/p/6198862.html http://www.runoob.com/java/number-valueof.html   這兩種方法是否都是建立一個物件呢??? 解答: 方法1是肯定建立一個物