2014-11-21 61 views
0

我有一個php變量,其中包含字符串數據類型'1.15'中的值,基本上我想將字符串值轉換爲浮點值。將字符串轉換爲最多2個浮點數

當變量包含值像1.15它被轉換爲浮動準確,但是如果之後變量具有類似1.10的價值浮充轉換成爲1.1(我想這是1.10)

我已經嘗試了幾事情,但我無法將1.1轉換爲1.10。

那麼有沒有解決這個問題的方法?

記得到底變量應該具有的數據類型float和價值1.10

+0

爲什麼數據類型甚至與您所說的語言有關係? – DrRoach 2014-11-21 12:25:03

+0

可否請您舉出轉換數據的實例 – 2014-11-21 12:30:32

+4

要將'1.1'表示爲'1.10',您需要將其轉換回字符串,因爲表示浮點數爲'1.10'沒有任何意義(它是「1.1」 )。 – pawel 2014-11-21 12:30:46

回答

-1

起初用途:

var newfloat = parseFloat(yourString).toFixed(2); 

轉換爲2DP

然後使用var float = parseFloat(newFloat);(因爲toFixed()返回字符串)轉換爲再次浮動。

+0

這會渲染一個字符串作爲數據類型 – RichardBernards 2014-11-21 12:27:30

+1

,並且最終變量'float'是:'1.1'而不是'1.10'。你仍然錯了 – RichardBernards 2014-11-21 12:44:14

0

電腦不是人類。 1.1是將Number對象轉換爲可讀格式的結果,1.10也是如此。畢竟,將冗餘數據保存在尾隨零將會浪費資源。

要顯示它需要一些轉換的變量,所以你唯一的行動方針的價值,有許多1.1顯示爲1.10沒有它明確地轉換爲字符串的任何時間(如toFixed())是掛鉤直到內部。

Number.prototype.toString = function(){ 
    return this.toFixed(2); 
} 

var oneone = new Number(1.1); 
// since implicit conversion to string is required it will show 1.10 
alert(oneone); 

http://jsfiddle.net/Lhxe1tu9/

這不是真正的最好的辦法(與原生對象原型搞亂很少是),而且只用數字工程,並使用new Number構造函數,而不是數量的文字聲明。我認爲你可以進一步推動它,但強迫語言改變其數字表示而不是格式化它們以顯示自己的想法似乎很奇怪。

相關問題