2017-04-05 68 views
1

我使用方法「Ext.util.Format.number」根據特定的格式將值轉換爲字符串。 但是這種方法增加了額外的(寄生蟲)小數。Ext.util.Format.number添加額外的小數

有了這個代碼:

var strValue = Ext.util.Format.number(value, this.displayFormat); 

例如,如果

  • displayFormat = 「0,000.00 ############」
  • 值= 102.15

轉換後,strValue不等於102.15,但爲102.15000000000001

是否有任何方法可以確保「Ext.util.Format.number」永遠不會添加額外/寄生小數?

謝謝

回答

1

由於102.15和102.15000000000001在JavaScript中無法區分(*),所以您可以選擇不包含那麼多數字的數字格式。 Ext.util.Format.number已無法確定正確的輸出。

(*)儘量102.15 === 102.15000000000001在JavaScript控制檯 - 它返回true

0

做格式化後的parseFloat(strValue)。我認爲這就是你要找的。

0

感謝所有爲您迴應

@Harshit沙阿

我不能用 「parseFloat」 因爲我需要結束有一個字符串(格式)的值。 格式化之前,我已經通過刪除額外的小數來截斷浮點值,但沒有成功。

@ammoQ

你是對的。有效地爲JavaScript 102.15 === 102.15000000000001是平等的。 但是,正如你所建議的,少一位小數,它不等於(1 02.15 === 102.1500000000001 =>false)。 我將使用精度較低的格式。

感謝。