試編寫使用者自定義函式ntoc,將使用者給定的阿拉伯數字0 9轉換為對應的漢字零 九

時間 2021-07-01 01:21:25

1樓:匿名使用者

create procedure atoc

@changemoney money

asset nocount on

declare @string1 char(20)

declare @string2 char(30)

declare @string4 varchar(100)

declare @string3 varchar(100) –從原a值中取出的值

declare @i int –迴圈變數

declare @j int –a的值乘以100的字串長度

declare @ch1 varchar(100) –數字的漢語讀法

declare @ch2 varchar(100) –數字位的漢字讀法

declare @zero int –用來計算連續有幾個零

declare @returnvalue varchar(100)

select @returnvalue = ”

select @string1 = ‘零壹貳叄肆伍陸柒捌玖’

select @string2 = ‘萬仟佰拾億仟佰拾萬仟佰拾元角分’

select @string4 = cast(@changemoney*100 as int)

select @j=len(cast((@changemoney*100) as int))

select @string2=right(@string2,@j)

select @i = 1

while @i<= @j begin

select @string3 = substring(@string4,@i,1)

if @string3<>‘0′ begin

select @ch1 = substring(@string1, cast(@string3 as int) + 1, 1)

select @ch2 = substring(@string2, @i, 1)

select @zero = 0 –表示本位不為零

endelse begin

if (@zero = 0) or (@i = @j – 9) or (@i = @j – 5) or (@i = @j – 1)

select @ch1 = ‘零’

else

select @ch1 = ”

select @zero = @zero + 1 –表示本位為0

–如果轉換的數值需要擴大,那麼需改動以下表示式 i 的值。

select ch2 = ”

if @i = @j – 10 begin

select @ch2 = ‘億’

select @zero = 0

endif @i = @j – 6 begin

select @ch2 = ‘萬’

select @zero = 0

endif @i = @j – 2 begin

select @ch2 = ‘元’

select @zero = 0

endif @i = @j

select @ch2 = ‘整’

endselect @returnvalue = @returnvalue + @ch1 + @ch2

select @i = @i+1

end–最後將多餘的零去掉

if charindex(‘仟仟’,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, ‘仟仟’, ‘仟’)

if charindex(‘佰佰’,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, ‘佰佰’, ‘佰’)

if charindex(‘零元’,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, ‘零元’, ‘元’)

if charindex(‘零萬’,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, ‘零萬’, ‘萬’)

if charindex(‘零億’,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, ‘零億’, ‘億’)

if charindex(‘零整’,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, ‘零整’, ‘整’)

if charindex(‘零佰’,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, ‘零佰’, ‘零’)

if charindex(‘零仟’,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, ‘零仟’, ‘零’)

if charindex(‘元元’,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, ‘元元’, ‘元’)

select @returnvaluego

2樓:匿名使用者

定義一個漢字型檔陣列hzk=

然後利用給定的0-9做索引呼叫陣列中的漢字型檔

哪種物聯網程式語言最熱門

樂高機器人用的什麼程式語言?

3樓:匿名使用者

樂高機器人程式設計軟體叫lego mindstorms nxt、robolab。

robolab。它是一個簡單、直觀、易學的程式設計環境,也可適用於樂高程式設計。它基於圖形化語言的程式設計環境,適合各個年齡段的使用者使用,程式的編寫方式類似於做邏輯表達,不過是全部圖形化的。

在基於robolab程式設計環境進行程式編寫,需要清醒的頭腦,清晰的邏輯。程式編寫完畢後通過樂高(lego)紅外感測器傳送至機器人(rcx)的記憶體中。

robolab的出現原本旨在為相關產品做軟體支援,經過多年的發展,已經成為青少年進行機器人競賽的必備程式設計工具。現在最新版本robolab 2.9 能支援新一代樂高(lego) 機器人(nxt)。

robolab是 樂高(lego) 機器人(一種基於rcx核心執行的簡單機器人)的程式設計工具。它是樂高玩具公司於2023年8月推出的廣受歡迎的新一代玩具機器人系統,該系統包括一個由ni開發、且基於labview平臺的全新推放式圖形化程式設計環境,是目前nxt程式設計最廣泛應用的軟體。

編寫程式自定義的遞迴函式long power int m,i

無語的店鋪 2010 12 2 09 09 提供答案有錯誤我將其修改如下 include long power int m,int n void main 另一解法 include long power int m,int n return y int main 這兩個辦法都可以解決這一個問題 遞迴...

EXCEL VBA自定義函式,EXCEL VBA 自定義函式

萬年金剛鑽 你的自定義函式易失性函式,不會自動更新,你只要在使用函式的公式後面加上強制更新的東西就行了 比如你的公式的結果是文字型的,那麼 pbs t now 比如你的公式的結果是數值型的,那麼 pbs n t now 就能強制自動更新 至於rng1和rng2,樓主試試用range的方式,也就是se...

c語言求救二實驗內容編寫自定義子函式實

古神孤鴻 include define n 10 void swap int a,int b,int n int main void void swap int a,int b,int n c語言 指標 編寫一個函式實現n n矩陣轉置。在主函式中用scanf輸入矩陣元素 將陣列名作為函式實參。 庫後...