2010-04-29 41 views
0

我想在我PHPMySql實踐與十進制數據的工作,我不知道我怎麼能對一個可接受的水平AF精度做。輸入文本值轉換爲十進制數

我寫了一個簡單的function,它將我的input text value記錄下來,並將其轉換爲decimal number,準備存儲在數據庫中。

<?php 

function unit ($value, $decimal_point = 2) { 
    return number_format (str_replace (",", ".", strip_tags (trim ($value))), $decimal_point); 
} 

?> 

我已經解決類​​似AbdlBsF5%?nl與替換一些jQuery代碼和一些正則表達式只保留數字,點和逗號。

在某些國家/地區,人們使用逗號,發送十進制數,因此像72.08這樣的數字的寫法類似於72,08。我想避免強迫人們改變他們平常的字符,我決定使用jQuery來保持這一點。

現在每個Web開發人員都知道上次驗證必須由動態頁面來處理,這是出於安全原因。

所以我的回答是我應該使用類似unit();功能來存儲數據,或者我應該也檢查,如果用戶插入無效字符像字母或其他什麼東西?如果我嘗試這種方式併發送信件,查詢的工作原理不會保存無效的數據,我認爲這並不壞,但我很容易出錯,因爲我是一名菜鳥。

如果我想一個數字,如99999.99我應該用我的查詢什麼樣的方法?

回答

1

不要忘記考慮格式也與一些DATABASE值一樣FLOAT(10,2)

恕我直言,這也是非常重要的!

那麼,當然使用服務器端語言進行真正的驗證是最佳實踐!

你可以看到這一點:

http://php.net/manual/en/function.number-format.php

JavaScript會幻想和方便,但不保證雖然!

+0

感謝提醒,我選擇了十進制後的問題http://stackoverflow.com/questions/1828068/best-mysql-datatype-for-grams-milligrams-micrograms-and-kilojoule這裏 – vitto 2010-04-29 21:45:43

+0

沒問題!偉大的鏈接! – 2010-04-30 12:05:22

相關問題