Ios 如何使用swift将自定义滑块的值四舍五入到特定图案?

Ios 如何使用swift将自定义滑块的值四舍五入到特定图案?,ios,swift,Ios,Swift,我有这样的看法: 因此,有2个UITextFields和一个自定义滑块,我是通过以下方式制作的。正如您所看到的,UITextField的值没有四舍五入,我想要的是使值四舍五入,如以下示例所示(我希望您得到该模式): 如果值为12.000.000-12.149.000,则四舍五入为12.000.000 如果值为12.150.000-12.250.000,则四舍五入为12.250.000 如果该值为12.251.000-12.350.000,则四舍五入为12.250.000 如果该值为12.35

我有这样的看法:

因此,有2个
UITextField
s和一个自定义滑块,我是通过以下方式制作的。正如您所看到的,
UITextField
的值没有四舍五入,我想要的是使值四舍五入,如以下示例所示(我希望您得到该模式):

  • 如果值为12.000.000-12.149.000,则四舍五入为12.000.000
  • 如果值为12.150.000-12.250.000,则四舍五入为12.250.000
  • 如果该值为12.251.000-12.350.000,则四舍五入为12.250.000
  • 如果该值为12.351.000-12.500.000,则四舍五入为12.500.000
以下是我的滑块动作功能:

func floorInteger(value: Double) -> Int{ // Since the slider value type is a double and starts from 1.25 to 35.0, i had to make this function to adjust to my currency
        return Int(floor(value * 1000000))
    }

@IBAction func sliderAction(_ sender: Any) {
        minPrice = "\(floorInteger(value: rangeSlider.lowerValue))" // set the min value
        maxPrice = "\(floorInteger(value: rangeSlider.upperValue))" // set the max value
        updateHargaFields() // Updating the text fields each time i slide the slider
    }

我怎样才能做到这一点?我对iOS编程还是个新手,所以我仍然没有什么经验。如果您需要更多代码,请随时询问。非常感谢您的帮助。

根据您的自定义逻辑,您基本上想要小于百万的值吗?但看起来你是在用你的价值乘以1000?(下划线在Swift中充当被忽略的千位分隔符,仅供参考,因此您可以使用它使其更具可读性。)

您可以使用
.truncatingrements
查找双精度除法后的余数。然后根据您的模式更改剩余部分,并将其添加回您的下限值。最后乘以1m。但这对双胞胎的重要数字可能有些奇怪

我认为最好马上把你的Double换成Int,然后你可以使用模
%
操作符,你可以确定当你乘以1m时,你不会得到像Rp 12.250.001这样奇怪的结果


func sliderToCurrency(value: Double) -> Int{ 
    let amount: Int = Int(value * 1_000_000)
    let remainder = amount % 1_000_000
    let base = amount - remainder
    var rounded = 0

    if remainder < 150_000 {
        rounded = base
    } else if remainder <= 350_000 {
        rounded = base + 250_000
    } else if remainder <= 500_000 {
        rounded = base + 500_000
    } // else if etc...

    return rounded
}


func sliderToCurrency(值:Double)->Int{
出租金额:Int=Int(值*1\u 000\u 000)
剩余金额=金额%1\u 000\u 000
设基数=金额-余数
var四舍五入=0
如果余数<150_000{
四舍五入=基数
}如果剩余