我想将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