Convert from String to Integer to Float and back again

As you read values off a site, there will come a time when you need to manipulate them, such as performing calculations or making comparisons. That doesn’t seem to be problem until you end up with Strings being compared to Integers.

For the most part, a value read off a page will be a string because you don’t always know what it contains. For example, “New Sales Company” is a string of characters. On the other side, 537273 is a number. However, $537,273, which you can identify as numbers is actually a¬† String value as far as the code is concerned.

Even after you remove the dollar sign and comma, the value type will still be treated as a string because that’s how it was initially read. Comparing a string to an integer will cause a mismatch, but there is a simple way to handle that.

The ValueOf() statement allows the comparison of values as a certain type. Taking the example above, it would be read from the site as a string. We would then remove the $ and , with the ReplaceAll statement – replaceAll(“[\$,]”, “”)

As noted, that would give 537273, but it is still a string. If we wanted to see if the value was greater than 500000 or add another number to it, we can use Integer.valueOf() as in – siteDailyGrossProfit=Integer.valueOf(tempText).

This would set the variable siteDailyGrossProfit to the Integer value of tempText, which would be the dollar figure we read from the site. Because the result will be an integer, this will set siteDailyGrossProfit as an Integer.

The same would be done within an IF statement to verify if the value read is less than or equal to 0. In my test case, if a value is $0, there is an issue and I want to do something about it. Once the value is read, an IF statement would be set up as:

if (Integer.valueOf(dailySalesFigure)<=0)

The same type of conversion holds true for String and Float values. As an example, calculatedMargin=(((Float.valueOf(GP) / Float.valueOf(sales)) * 100).round(1)) – calculates a percentage and rounds the result to 1 decimal place. The values were read as string, but can be multiplied and divided as Float values.

String works the same way, such as the random number example we used earlier:

WebUI.setText(findTestObject(‘Page_/Sales Plan Budget/New Prospect/Category Margin Column’, [(‘Variable’) : loop]), String.valueOf(randomNumber))

A variant is to use .toInteger, .toFloat() and .toString. In this case, the variable tempText reads the value 123456 off the site. Converting to the different types would look like:

intValue = tempText.toInteger() – Would return 123456 as an Integer

stringValue = tempText.toString() – Would return 123456 as a String

floatValue = tempText.toFloat() – Would return 123456.0 as a Float

As a final example, using a command similar to the Selenium IDE, the following will convert a value to a Integer:

intValue = Integer.parseInt(strnumber)

Other articles of interest:

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent Comments
  • How To Disable the Quicken Registration Prompt (30)
    • David: A BIG Thank you! I regularly reinstall Windows OS’s using different hardware configs. In short, Quicken 2011 (it’s March of 2020 as I write this) has been a program I’ve been very happy with and continue to use....
    • Karen L: Today I rang Reckon Australia again, got a different guy and he talked me through the process of getting me a new product key to enter since I already had the licence and it had been extended. Reckon have only extended it by 1...
    • Karen L: I have Australian Quicken 2008 on Windows 8.1. It keeps asking me to renew my licence which Reckon did for me however the activation won’t work. I tried this to disable the registration prompt however it did not stop the...
  • Parsing Strings in Katalon – Split, Substring and Readlines (6)
    • Don Pedro: String tempText=”Date Month January. Revenue $1,355,721.00″ println(tempText.split(“ \$”)[1]) You need to escape the $ with \$ The [1] on the split captures characters on the right of the split [0]...
    • Prasad: Hi, I need to get the substring from the below string ‘Date Month January. Revenue $1,355,721.00’ I want to extract text after $ value. Please help Thank you
  • Working with Dates and Date Formatting in Katalon Studio (15)
    • Sangeethaa: How to get previous day’s date(Yesterday’s date)? Actually I was using today.previous() before,it was working fine till today morning.Now its not retrieving right date. Can anyone please guide me on this.
    • Don Pedro: That could be a little tricky. First, is the text/format always going to be the same? You will need to do some parsing. Separate the first but of text at 2019. After that, split the text again to get rid of Central Standard...
    • Don Pedro: It should be of the same Date type as today. You could then do some calendar trickery with Calendar /*Calendar c = Calendar.getInstance(); //c.set(Calendar.MONTH, 1) //Set the month, 0=January, 11=December println...
    • josh: I’m testing a page with a string like “Updated November 21, 2019 16:25:32 PM Central Standard Time.” How might I capture the date and time and compare it to current time to verify that the update time was within...
    • zakir hussain: today = new Date() lastWeek = (today – 1.week) can u please help me in understanding what is the return type of lastweek? and I wanted to set nextyear date how can i do it
  • Output status messages and test information by writing to the Log File Viewer in Katalon Studio (6)
    • Saranya: Good One. Could you plz share link to access all your katalon related blogs. ThankQ
    • Rodrigo Calabretta: I’m using the KeywordUtil.markFailed or KeywordUtil.markError and my test stops is being shown as Error and If I use in the @afterTestCase the testCaseContext.getTestCaseSta tus() to show the status test case...
  • Setting up Environment Profiles in Katalon Studio (2)
    • Don Pedro: Not quite sure I understand. The term “Execution Profile” is normally used now, but they are still GlobalVariables and are created in the same way for version 7 as previous. You make a new execution profile, then...
  • Here is my drive cluster (2)
    • Don Pedro: While I still have those drives, the drive cluster looks nothing like that now. Almost all of my external drives have had the cases removed and they have been installed into a series of MediaSonic 8 Bay Drive Enclosures. I...
    • Marin Boucher: Hi! Verry funny blog with “go to the point” on many post! I spent good time reading some of your post. Regarding this one about NAS, “many NAS” in fact, I would be curious to see a screenshot of...