Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,690 questions

55,449 answers

573 users

How to convert a string with either, or . as decimal/thousand separators into a float in Scala

1 Answer

0 votes
object LocalizedFloatParser {
  def toFloat(input: String): Double = {
    val commaCount = input.count(_ == ',')
    val dotCount = input.count(_ == '.')

    val lastComma = input.lastIndexOf(',')
    val lastDot = input.lastIndexOf('.')

    var str = input

    if (commaCount > 0 && dotCount > 0) {
      if (lastComma > lastDot) {
        str = str.replace(".", "").replace(",", ".")
      } else {
        str = str.replace(",", "")
      }
    } else if (commaCount > 0) {
      str = str.replace(".", "").replace(",", ".")
    } else {
      str = str.replace(",", "")
    }

    str.toDouble
  }

  def main(args: Array[String]): Unit = {
    println(f"${toFloat("1,224,533.533")}%.3f")
    println(f"${toFloat("1.224.533,533")}%.3f")
    println(f"${toFloat("2.354,67")}%.2f")
    println(f"${toFloat("2,354.67")}%.2f")
  }
}

 



answered Jun 27, 2025 by avibootz
...