我想將Double舍入到小數點後總是四捨五入的整數。在swift中向下舍入
例
四捨五入至0.00 => 1.5679999至1.56
四捨五入至0.000 => 1.5679999至1.567
round(1.5679999 * 100)/100 //returns 1.57
round(1.5679999 * 1000)/1000 //returns 1.568
我想要一個雙不級聯字符串
我想將Double舍入到小數點後總是四捨五入的整數。在swift中向下舍入
例
四捨五入至0.00 => 1.5679999至1.56
四捨五入至0.000 => 1.5679999至1.567
round(1.5679999 * 100)/100 //returns 1.57
round(1.5679999 * 1000)/1000 //returns 1.568
我想要一個雙不級聯字符串
只需用替換floor
即可!
我覺得很愚蠢,沒有發現... – gnasher729
'地板(1.5679999 * 1000)/ 1000 == 1.5669999999999999''。你不能劃分和乘以一個浮點數來可靠地改變它的精度。 – mattt
絕對,謝謝指出! PS - 我愛你Mattt! :)想知道你最近做了什麼。對你多年來爲iOS社區做出的所有傑出貢獻給予了巨大的尊重。 – Clafou
目的是什麼?如果要顯示給用戶,則應該使用「NSNumberFormatter」。您不應該依賴任意浮點精度來格式化字符串。 – mattt
因爲'NSNumberFormatter'不會改變底層的值,所以只給用戶顯示一個String。 #ifeellikemosesonthemountaintalkingtoyou。 – Mika
更多細節:我正在設計一個帶有退格按鈕的自定義數字鍵盤。當用戶點擊退格鍵時,他們不僅希望數字從屏幕上消失,而且還會從輸入的值中消失。這就是我的做法:'amount/= 10''amount = floor(amount * 100)/ 100''refreshAmountLabel()'。建議歡迎! – Mika