# Convert string to integer

**URL:** <https://forum.katalon.com/t/convert-string-to-integer/32545>\
**Category:** API Testing\
**Tags:** api-testing, katalon-studio\
**Created:** [September 4, 2019, 6:47am UTC](https://forum.katalon.com/t/convert-string-to-integer/32545 "2019-09-04T06:47:09Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![arturs.pumpa](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/arturs.pumpa/32/16103_2.png) [@arturs.pumpa](https://forum.katalon.com/u/arturs.pumpa)\
**Post date:** [September 4, 2019, 6:47am UTC](https://forum.katalon.com/t/convert-string-to-integer/32545/1 "2019-09-04T06:47:09Z")

</div>

Hello colleagues!

Have one question about converting. Have the following code

```auto
CustomKeywords.'demomysql.Demo.connectDB'('demo', 'demo', '3306', 'user', 'test')

String user_id = CustomKeywords.'demomysql.Demo.executeQuery'('SELECT user_id FROM contracts order by user_id desc;')

String contract_id = CustomKeywords.'demomysql.Demo.executeQuery'('SELECT id FROM contracts order by user_id desc;')

String summ_of_client_payments = CustomKeywords.'demomysql.Demo.executeQuery'('select sum(LEFT(external_account, length(external_account) -3)) as external_account from transactions where contract_id = '+ contract_id +';') // equals 8000

String total_credit_summ = CustomKeywords.'demomysql.Demo.executeQuery'('select sum(LEFT(internal_account, length(internal_account) -3)) as internal_account from transactions where contract_id = '+ contract_id +';') // equals 10021

a = asInteger(total_credit_summ)

b = asInteger(summ_of_client_payments)
asInteger (client_need_to_pay = ( a - b ))
println(client_need_to_pay)

//int client_need_to_pay = total_credit_summ - summ_of_client_paiments 

//println(client_need_to_pay) 
CustomKeywords.'demomysql.Demo.closeDatabaseConnection'()

```

when i execute this code have the following error:

```auto
2019-09-04 09:02:23.479 DEBUG testcase.Tarrif limit test case - 8: Integer.parseInt(client_need_to_pay = a - b)
2019-09-04 09:02:23.491 ERROR c.k.katalon.core.main.TestCaseExecutor - ❌ Test Cases/Tarrif limit test case FAILED.
Reason:
groovy.lang.MissingMethodException: No signature of method: static java.lang.Integer.parseInt() is applicable for argument types: (java.lang.Integer) values: [2021]
Possible solutions: parseInt(java.lang.String), parseInt(java.lang.String, int), print(java.lang.Object), print(java.io.PrintWriter)
	at Tarrif limit test case.run(Tarrif limit test case:40)
	at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)
	at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)
	at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:337)
	at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:328)
	at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:307)
	at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:299)
	at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:233)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:114)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:105)
	at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
	at TempTestCase1567576941377.run(TempTestCase1567576941377.groovy:21)

```

Maybe someone can help with converting String to integer, what methods do you use in case when you need to convert for example string ‘123’ to integer 123 and after this make some arithmetic manipulations with it. if i make my select something like this :

```auto
int total_credit_summ = CustomKeywords.'demomysql.Demo.executeQuery'('select sum(LEFT(internal_account, length(internal_account) -3)) as internal_account from transactions where contract_id = '+ contract_id +';') // equals 10021

```

i also get errors

```auto
2019-09-04 09:49:26.888 ERROR c.k.katalon.core.main.TestCaseExecutor - ❌ Test Cases/Tarrif limit test case FAILED.
Reason:
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '8000' with class 'java.lang.String' to class 'int'

```

---

<div class="post-metadata">

**Author:** ![HeleneB](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/heleneb/32/2775_2.png) [@HeleneB](https://forum.katalon.com/u/HeleneB)\
**Post date:** [September 4, 2019, 7:23am UTC](https://forum.katalon.com/t/convert-string-to-integer/32545/2 "2019-09-04T07:23:14Z")

</div>

Hi

> [@arturs.pumpa](#):
>
> 8: **Integer.parseInt(client\_need\_to\_pay = a - b)** 2019-09-04 09:02:23.491 ERROR […] Reason: groovy.lang.MissingMethodException: **No signature of method: static java.lang.Integer.parseInt() is applicable for argument types: (java.lang.Integer)**

a and b are integers, you don’t need to parse client\_need\_to\_pay as integer.

You can use

```auto
a = total_credit_summ as Integer
b = summ_of_client_payments as Integer
client_need_to_pay = a - b

```

---

<div class="post-metadata">

**Author:** ![arturs.pumpa](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/arturs.pumpa/32/16103_2.png) [@arturs.pumpa](https://forum.katalon.com/u/arturs.pumpa)\
**Post date:** [September 4, 2019, 7:29am UTC](https://forum.katalon.com/t/convert-string-to-integer/32545/3 "2019-09-04T07:29:43Z")

</div>

i tried use

```auto
a = total_credit_summ
b = summ_of_client_payments
client_need_to_pay = ( a - b )
println(client_need_to_pay)

```

no errors but i get client\_need\_to\_pay = 10021  
but i have a = 10021 and b = 8000 so a - b should be 2021 something interesting =))

console log:

```auto
2019-09-04 10:27:44.103 DEBUG testcase.Tarrif limit test case - 6: a = total_credit_summ
2019-09-04 10:27:44.104 DEBUG testcase.Tarrif limit test case - 7: b = summ_of_client_payments
2019-09-04 10:27:44.105 DEBUG testcase.Tarrif limit test case - 8: client_need_to_pay = a - b
2019-09-04 10:27:44.106 DEBUG testcase.Tarrif limit test case - 9: println(client_need_to_pay)
10021

```

---

<div class="post-metadata">

**Author:** ![arturs.pumpa](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/arturs.pumpa/32/16103_2.png) [@arturs.pumpa](https://forum.katalon.com/u/arturs.pumpa)\
**Post date:** [September 4, 2019, 8:05am UTC](https://forum.katalon.com/t/convert-string-to-integer/32545/4 "2019-09-04T08:05:50Z")

</div>

i find the solution 🙂

```auto
def summ_of_client_payments = CustomKeywords.'demomysql.Demo.executeQuery'('select sum(LEFT(external_account, length(external_account) -3)) as external_account from u_transactions where contract_id = '+ contract_id +';') // equals 8000

def total_credit_summ = CustomKeywords.'demomysql.Demo.executeQuery'('select sum(LEFT(internal_account, length(internal_account) -3)) as internal_account from u_transactions where contract_id = '+ contract_id +';') // equals 10021

def a = total_credit_summ.toInteger()

def b = summ_of_client_payments.toInteger()

client_need_to_pay = a - b 

```

console give me back needed int value 2021:

```auto
2019-09-04 11:04:05.705 DEBUG testcase.Tarrif limit test case - 9: println(client_need_to_pay)
2021

```

---

<div class="post-metadata">

**Author:** ![HeleneB](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/heleneb/32/2775_2.png) [@HeleneB](https://forum.katalon.com/u/HeleneB)\
**Post date:** [September 4, 2019, 9:41am UTC](https://forum.katalon.com/t/convert-string-to-integer/32545/5 "2019-09-04T09:41:58Z")

</div>

> [@arturs.pumpa](#):
>
> no errors but i get client\_need\_to\_pay = 10021

It’s because you don’t use “as Integer” as I told you.

> [@arturs.pumpa](#):
>
> ```auto
> a = total_credit_summ 
> b = summ_of_client_payments 
> client_need_to_pay = ( a - b ) 
> println(client_need_to_pay)
> 
> ```

> [@HeleneB](#):
>
> You can use
> 
> ```auto
> a = total_credit_summ as Integer
> b = summ_of_client_payments as Integer
> client_need_to_pay = a - b
> 
> ```

---

<div class="post-metadata">

**Author:** ![Ibus](https://avatars.discourse-cdn.com/v4/letter/i/e9a140/32.png) [@Ibus](https://forum.katalon.com/u/Ibus)\
**Post date:** [September 4, 2019, 10:14am UTC](https://forum.katalon.com/t/convert-string-to-integer/32545/6 "2019-09-04T10:14:42Z")

</div>

@arturs.pumpa `as Integer` is the groovy way for the java’s `.toInteger` 😉

---

<div class="post-metadata">

**Author:** ![albert.vu](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/albert.vu/32/20595_2.png) [@albert.vu](https://forum.katalon.com/u/albert.vu)\
**Post date:** [August 8, 2022, 7:40am UTC](https://forum.katalon.com/t/convert-string-to-integer/32545/7 "2022-08-08T07:40:02Z")

</div>

Archived on August 8, 2022, 7:40am UTC


