<已解決>數字盤上的小數點

各位前輩大家好
小弟剛接觸LABVIEW兩個禮拜,目前遇到困難,翻了兩本書還是找不到我要的答案,在論壇裡搜尋也找不到相關主題可以參考,所以發表這篇文章求救,麻煩各位前輩協助小弟

小弟目前要做一個數字盤,功能是可以輸入0~9以及小數點和負值,目前小弟卡在輸入小數點符號時,數值內容並不會出現小數點,例如:123.456
請各位前輩指導小弟一個方向,讓我可以解決目前的難題,麻煩各位前輩

algerdia38768.8150925926

你可以試試用 String Indicator 來顯示你所要輸入的輸字文字,
不過得要自己撰寫有關 不合法輸入 的 check 動作。
這邊會是花滿多精力的地方。

我不太了解Airbolt大的意思是不是可以只要當小數點的按鈕被觸發時

在數值後面加上小數點然後再把後面的數字連結起來呢?

這個需求可以用很多方式來完成。如果以 String Numeric 兩種資料型態
來劃分的話:

 

一、以 String 資料型態來儲放資料而完成這個需求,比方說依序按下了
1 0 7 . 5 6 等 六個按鍵,這時候 String 依序儲放六個步驟所按下
的內容:

  1. 10
  2. 107
  3. 107.
  4. 107.5
  5. 107.56

上述步驟可用「Concatenate Strings.vi」實現。

(不過一般計算機第四步驟是不會出現的,這邊你可以另想辦法克服)
當輸入完成後,再將文字轉換成所要的數字。

這個方法,邏輯上比較簡單易完成,但缺點是 String 在電腦中是以
Array 的方式來存放
(一連串的記憶體空間)
是依每一次更動內容,都是將整個 Array 更新,在效率上來說是比較差的。

 

二、如果改用 Numeric 來撰寫的話,可能要在程式邏輯上多下些功夫:

  1. 每次我按下一個數字,就將先前的儲放的數字 再乘上 10 之後,
    再加上目前所按下的數字
  2. 當我按下了小數點之後,接下來所有所按下的數字都是依次乘上
    0.1 的 N 次方之後再加回原本所儲放的數字。

雖然邏輯上稍複雜些,但是在記憶體的效率上,應該會好一點。

 

這個是小弟目前所能想到的,應該還有更好的方式,大家有什麼 idea 就再補充吧。

 

剛剛發現,前人有發表不少不錯的做法,參考一下吧:
http://www.labview.com.tw/forum/forum_posts.asp?TID=2206

Airbolt38767.9569675926

我的問題解決囉

感謝各位的幫忙解決了這個難題....^^