Convert string to number
// C Program
// Convert string to number
#include <stdio.h>
#include <stdlib.h> // for strtol
int main()
{
char text[] = "1234";
char *ptr;
// 10 indicate decimal number
int num = strtol(text, & ptr, 10);
printf("%d\n", num);
return 0;
}
Output
1234
/*
Java Program for
Convert string to number
*/
public class StringToNumber
{
public static void main(String[] args)
{
String text = "1234";
// Convert string to number
int num = Integer.parseInt(text);
System.out.print(num);
}
}
Output
1234
// Include header file
#include <iostream>
#include <stdlib.h>
using namespace std;
/*
C++ Program for
Convert string to number
*/
int main()
{
char text[] = "1234";
// Convert string to number
int num = atoi(text);
cout << num;
return 0;
}
Output
1234
// Include namespace system
using System;
using System.Globalization;
/*
C# Program for
Convert string to number
*/
public class StringToNumber
{
public static void Main(String[] args)
{
String text = "-1234";
// Convert string to number
int num = int.Parse(text, NumberStyles.AllowLeadingSign);
Console.Write(num);
}
}
Output
-1234
<?php
/*
Php Program for
Convert string to number
*/
class StringToNumber
{}
function main()
{
$text = "1234";
// Convert string to number
$num = intval($text);
echo $num;
echo "\n".gettype($num);
}
main();
Output
1234
integer
/*
Node Js Program for
Convert string to number
*/
class StringToNumber
{}
function main()
{
var text = "1234";
// Convert string to number
var num = parseInt(text);
console.log(num, typeof num);
}
main();
Output
1234 'number'
# Python 3 Program for
# Convert string to number
def main() :
text = "1234"
# Convert string to number
num = int(text)
print(num, end = "")
if __name__ == "__main__": main()
Output
1234
# Ruby Program for
# Convert string to number
class StringToNumber end
def main()
text = "1234"
# Convert string to number
num = text.to_i # to_f for float
print(num," ",num.class)
end
main()
Output
1234 Fixnum
/*
Scala Program for
Convert string to number
*/
object Main
{
def main(args: Array[String]): Unit = {
var text: String = "1234";
// Convert string to number
var num: Int = (text).toInt;
print(num);
}
}
Output
1234
/*
Swift 4 Program for
Convert string to number
*/
class StringToNumber
{}
func main()
{
let text: String = "1234";
// Convert string to number
let num: Int? = Int(text) ;
print(num!, terminator: "");
}
main();
Output
1234
/*
Kotlin Program for
Convert string to number
*/
fun main(args: Array < String > ): Unit
{
var text: String = "1234";
// Convert string to number
var num: Int = text.toInt();
print(num);
print("\n "+num::class.simpleName);
}
Output
1234
Int
Second approach, Custom code to convert given string value into number. Here given code implementation process.
//C++ Program
//Convert string to number
#include <iostream>
using namespace std;
class MyString
{
public:
//This function is returning a valid number of given string
//When string is not valid number that is return zero value
double str_to_number(string text)
{
//Assuming that given text result not exceed the size of double (number)
int size = text.size();
if (size == 0)
{
//When have empty string
return 0;
}
double number = 0;
int is_nagative = 0;
double result = 0.0;
//This are used when floating point numbers are exist
int fraction = 0;
if (size > 0 && text[0] == '-')
{
//When number is nagative
is_nagative = 1;
}
for (int i = is_nagative; i < size; ++i)
{
if (fraction == 0 && text[i] == '.')
{
//Floating point numbers are exist
fraction = 1;
}
else if (text[i] >= '0' && text[i] <= '9')
{
//When digit is exist
number = (number * 10) + (text[i] - '0');
if (fraction != 0)
{
//When Fraction part exist
fraction = fraction * 10;
}
}
else
{
//When text is not number
return 0;
}
}
if (fraction != 0)
{
result = number / fraction;
}
else
{
result = number;
}
if (is_nagative == 1)
{
result = -result;
}
return result;
}
};
int main()
{
MyString obj;
//Some test cases
string text = "1234";
double number = obj.str_to_number(text);
cout << text << " : " << number << endl;
//Test when number is nagative or not
text = "-12345";
number = obj.str_to_number(text);
cout << text << " : " << number << endl;
text = "--1234";
number = obj.str_to_number(text);
cout << text << " : " << number << endl;
text = "-12a345";
number = obj.str_to_number(text);
cout << text << " : " << number << endl;
text = "15.50";
number = obj.str_to_number(text);
cout << text << " : " << number << endl;
text = "15.58";
number = obj.str_to_number(text);
cout << text << " : " << number << endl;
text = "-15.58";
number = obj.str_to_number(text);
cout << text << " : " << number << endl;
text = "10.45.8";
number = obj.str_to_number(text);
cout << text << " : " << number << endl;
return 0;
}
Output
1234 : 1234
-12345 : -12345
--1234 : 0
-12a345 : 0
15.50 : 15.5
15.58 : 15.58
-15.58 : -15.58
10.45.8 : 0
//Java Program
//Convert string to number
class MyString
{
//This function is returning a valid number of given string
//When string is not valid number that is return 0 value
public double str_to_number(String text)
{
//Assuming that given text result not exceed the size of int (number)
int size = text.length();
if (size == 0)
{
return 0;
}
double number = 0;
int is_nagative = 0;
double result = 0.0;
//This are used when floating point numbers are exist
int fraction = 0;
if (size > 0 && text.charAt(0) == '-')
{
//When number is nagative
is_nagative = 1;
}
for (int i = is_nagative; i < size; ++i)
{
if (fraction == 0 && text.charAt(i) == '.')
{
//Floating point numbers are exist
fraction = 1;
}
else if (text.charAt(i) >= '0' && text.charAt(i) <= '9')
{
//When digit is exist
number = (number * 10) + (text.charAt(i) - '0');
if (fraction != 0)
{
//When Fraction part exist
fraction = fraction * 10;
}
}
else
{
//When text is not number
return 0;
}
}
if (fraction != 0)
{
result = number / fraction;
}
else
{
result = number;
}
if (is_nagative == 1)
{
result = -result;
}
return result;
}
public static void main(String[] args)
{
MyString obj = new MyString();
//Some test cases
String text = "1234";
double number = obj.str_to_number(text);
System.out.print(text + " : " + number + "\n");
//Test when number is nagative or not
text = "-12345";
number = obj.str_to_number(text);
System.out.print(text + " : " + number + "\n");
text = "--1234";
number = obj.str_to_number(text);
System.out.print(text + " : " + number + "\n");
text = "-12a345";
number = obj.str_to_number(text);
System.out.print(text + " : " + number + "\n");
text = "15.50";
number = obj.str_to_number(text);
System.out.print(text + " : " + number + "\n");
text = "15.58";
number = obj.str_to_number(text);
System.out.print(text + " : " + number + "\n");
text = "-15.58";
number = obj.str_to_number(text);
System.out.print(text + " : " + number + "\n");
text = "10.45.8";
number = obj.str_to_number(text);
System.out.print(text + " : " + number + "\n");
}
}
Output
1234 : 1234.0
-12345 : -12345.0
--1234 : 0.0
-12a345 : 0.0
15.50 : 15.5
15.58 : 15.58
-15.58 : -15.58
10.45.8 : 0.0
//Include namespace system
using System;
//C# Program
//Convert string to number
class MyString
{
//This function is returning a valid number of given string
//When string is not valid number that is return 0 value
public double str_to_number(String text)
{
//Assuming that given text result not exceed the size of int (number)
int size = text.Length;
if (size == 0)
{
return 0;
}
double number = 0;
int is_nagative = 0;
double result = 0.0;
//This are used when floating point numbers are exist
int fraction = 0;
if (size > 0 && text[0] == '-')
{
//When number is nagative
is_nagative = 1;
}
for (int i = is_nagative; i < size; ++i)
{
if (fraction == 0 && text[i] == '.')
{
//Floating point numbers are exist
fraction = 1;
}
else if (text[i] >= '0' && text[i] <= '9')
{
//When digit is exist
number = (number * 10) + (text[i] - '0');
if (fraction != 0)
{
//When Fraction part exist
fraction = fraction * 10;
}
}
else
{
//When text is not number
return 0;
}
}
if (fraction != 0)
{
result = number / fraction;
}
else
{
result = number;
}
if (is_nagative == 1)
{
result = -result;
}
return result;
}
public static void Main(String[] args)
{
MyString obj = new MyString();
//Some test cases
String text = "1234";
double number = obj.str_to_number(text);
Console.Write(text + " : " + number + "\n");
//Test when number is nagative or not
text = "-12345";
number = obj.str_to_number(text);
Console.Write(text + " : " + number + "\n");
text = "--1234";
number = obj.str_to_number(text);
Console.Write(text + " : " + number + "\n");
text = "-12a345";
number = obj.str_to_number(text);
Console.Write(text + " : " + number + "\n");
text = "15.50";
number = obj.str_to_number(text);
Console.Write(text + " : " + number + "\n");
text = "15.58";
number = obj.str_to_number(text);
Console.Write(text + " : " + number + "\n");
text = "-15.58";
number = obj.str_to_number(text);
Console.Write(text + " : " + number + "\n");
text = "10.45.8";
number = obj.str_to_number(text);
Console.Write(text + " : " + number + "\n");
}
}
Output
1234 : 1234
-12345 : -12345
--1234 : 0
-12a345 : 0
15.50 : 15.5
15.58 : 15.58
-15.58 : -15.58
10.45.8 : 0
<?php
//Php Program
//Convert string to number
class MyString
{
//This function is returning a valid number of given string
//When string is not valid number that is return 0 value
public function str_to_number($text)
{
//Assuming that given text result not exceed the size of int (number)
$size = strlen($text);
if ($size == 0)
{
return 0;
}
$number = 0;
$is_nagative = 0;
$result = 0.0;
//This are used when floating point numbers are exist
$fraction = 0;
if ($size > 0 && $text[0] == '-')
{
//When number is nagative
$is_nagative = 1;
}
for ($i = $is_nagative; $i < $size; ++$i)
{
if ($fraction == 0 && $text[$i] == '.')
{
//Floating point numbers are exist
$fraction = 1;
}
else if (ord($text[$i]) >= ord('0') && ord($text[$i]) <= ord('9'))
{
//When digit is exist
$number = ($number * 10) + (ord($text[$i]) - ord('0'));
if ($fraction != 0)
{
//When Fraction part exist
$fraction = $fraction * 10;
}
}
else
{
//When text is not number
return 0;
}
}
if ($fraction != 0)
{
$result = $number / $fraction;
}
else
{
$result = $number;
}
if ($is_nagative == 1)
{
$result = -$result;
}
return $result;
}
}
function main()
{
$obj = new MyString();
//Some test cases
$text = "1234";
$number = $obj->str_to_number($text);
echo $text ." : ". $number ."\n";
//Test when number is nagative or not
$text = "-12345";
$number = $obj->str_to_number($text);
echo $text ." : ". $number ."\n";
$text = "--1234";
$number = $obj->str_to_number($text);
echo $text ." : ". $number ."\n";
$text = "-12a345";
$number = $obj->str_to_number($text);
echo $text ." : ". $number ."\n";
$text = "15.50";
$number = $obj->str_to_number($text);
echo $text ." : ". $number ."\n";
$text = "15.58";
$number = $obj->str_to_number($text);
echo $text ." : ". $number ."\n";
$text = "-15.58";
$number = $obj->str_to_number($text);
echo $text ." : ". $number ."\n";
$text = "10.45.8";
$number = $obj->str_to_number($text);
echo $text ." : ". $number ."\n";
}
main();
Output
1234 : 1234
-12345 : -12345
--1234 : 0
-12a345 : 0
15.50 : 15.5
15.58 : 15.58
-15.58 : -15.58
10.45.8 : 0
//Node Js Program
//Convert string to number
class MyString
{
//This function is returning a valid number of given string
//When string is not valid number that is return 0 value
str_to_number(text)
{
//Assuming that given text result not exceed the size of int (number)
var size = text.length;
if (size == 0)
{
return 0;
}
var number = 0;
var is_nagative = 0;
var result = 0.0;
//This are used when floating point numbers are exist
var fraction = 0;
if (size > 0 && text[0] == '-')
{
//When number is nagative
is_nagative = 1;
}
for (var i = is_nagative; i < size; ++i)
{
if (fraction == 0 && text[i] == '.')
{
//Floating point numbers are exist
fraction = 1;
}
else if (text[i] >= '0' && text[i] <= '9')
{
//When digit is exist
number = (number * 10) + (text[i] - '0');
if (fraction != 0)
{
//When Fraction part exist
fraction = fraction * 10;
}
}
else
{
//When text is not number
return 0;
}
}
if (fraction != 0)
{
result = number / fraction;
}
else
{
result = number;
}
if (is_nagative == 1)
{
result = -result;
}
return result;
}
}
function main()
{
var obj = new MyString();
//Some test cases
var text = "1234";
var number = obj.str_to_number(text);
process.stdout.write(text + " : " + number + "\n");
//Test when number is nagative or not
text = "-12345";
number = obj.str_to_number(text);
process.stdout.write(text + " : " + number + "\n");
text = "--1234";
number = obj.str_to_number(text);
process.stdout.write(text + " : " + number + "\n");
text = "-12a345";
number = obj.str_to_number(text);
process.stdout.write(text + " : " + number + "\n");
text = "15.50";
number = obj.str_to_number(text);
process.stdout.write(text + " : " + number + "\n");
text = "15.58";
number = obj.str_to_number(text);
process.stdout.write(text + " : " + number + "\n");
text = "-15.58";
number = obj.str_to_number(text);
process.stdout.write(text + " : " + number + "\n");
text = "10.45.8";
number = obj.str_to_number(text);
process.stdout.write(text + " : " + number + "\n");
}
main();
Output
1234 : 1234
-12345 : -12345
--1234 : 0
-12a345 : 0
15.50 : 15.5
15.58 : 15.58
-15.58 : -15.58
10.45.8 : 0
# Python 3 Program
# Convert string to number
class MyString :
# This function is returning a valid number of given string
# When string is not valid number that is return 0 value
def str_to_number(self, text) :
# Assuming that given text result not exceed the size of int (number)
size = len(text)
if (size == 0) :
return 0
number = 0
is_nagative = 0
result = 0.0
# This are used when floating point numbers are exist
fraction = 0
if (size > 0 and text[0] == '-') :
# When number is nagative
is_nagative = 1
i = is_nagative
while (i < size) :
if (fraction == 0 and text[i] == '.') :
# Floating point numbers are exist
fraction = 1
elif(ord(text[i]) >= ord('0') and ord(text[i]) <= ord('9')) :
# When digit is exist
number = (number * 10) + (ord(text[i]) - ord('0'))
if (fraction != 0) :
# When Fraction part exist
fraction = fraction * 10
else :
# When text is not number
return 0
i += 1
if (fraction != 0) :
result = number / fraction
else :
result = number
if (is_nagative == 1) :
result = -result
return result
def main() :
obj = MyString()
# Some test cases
text = "1234"
number = obj.str_to_number(text)
print(text ," : ", number ,"\n", end = "")
# Test when number is nagative or not
text = "-12345"
number = obj.str_to_number(text)
print(text ," : ", number ,"\n", end = "")
text = "--1234"
number = obj.str_to_number(text)
print(text ," : ", number ,"\n", end = "")
text = "-12a345"
number = obj.str_to_number(text)
print(text ," : ", number ,"\n", end = "")
text = "15.50"
number = obj.str_to_number(text)
print(text ," : ", number ,"\n", end = "")
text = "15.58"
number = obj.str_to_number(text)
print(text ," : ", number ,"\n", end = "")
text = "-15.58"
number = obj.str_to_number(text)
print(text ," : ", number ,"\n", end = "")
text = "10.45.8"
number = obj.str_to_number(text)
print(text ," : ", number ,"\n", end = "")
if __name__ == "__main__": main()
Output
1234 : 1234
-12345 : -12345
--1234 : 0
-12a345 : 0
15.50 : 15.5
15.58 : 15.58
-15.58 : -15.58
10.45.8 : 0
# Ruby Program
# Convert string to number
class MyString
# This function is returning a valid number of given string
# When string is not valid number that is return 0 value
def str_to_number(text)
# Assuming that given text result not exceed the size of int (number)
size = text.length()
if (size == 0)
return 0
end
number = 0
is_nagative = 0
result = 0.0
# This are used when floating point numbers are exist
fraction = 0
if (size > 0 && text[0] == '-')
# When number is nagative
is_nagative = 1
end
i = is_nagative
while (i < size)
if (fraction == 0 && text[i] == '.')
# Floating point numbers are exist
fraction = 1
elsif((text[i]).ord >= ('0').ord && (text[i]).ord <= ('9').ord)
# When digit is exist
number = (number * 10) + ((text[i]).ord - ('0').ord)
if (fraction != 0)
# When Fraction part exist
fraction = fraction * 10
end
else
# When text is not number
return 0
end
i += 1
end
if (fraction != 0)
result = number / fraction
else
result = number
end
if (is_nagative == 1)
result = -result
end
return result
end
end
def main()
obj = MyString.new()
# Some test cases
text = "1234"
number = obj.str_to_number(text)
print(text ," : ", number ,"\n")
# Test when number is nagative or not
text = "-12345"
number = obj.str_to_number(text)
print(text ," : ", number ,"\n")
text = "--1234"
number = obj.str_to_number(text)
print(text ," : ", number ,"\n")
text = "-12a345"
number = obj.str_to_number(text)
print(text ," : ", number ,"\n")
text = "15.50"
number = obj.str_to_number(text)
print(text ," : ", number ,"\n")
text = "15.58"
number = obj.str_to_number(text)
print(text ," : ", number ,"\n")
text = "-15.58"
number = obj.str_to_number(text)
print(text ," : ", number ,"\n")
text = "10.45.8"
number = obj.str_to_number(text)
print(text ," : ", number ,"\n")
end
main()
Output
1234 : 1234
-12345 : -12345
--1234 : 0
-12a345 : 0
15.50 : 15
15.58 : 15
-15.58 : -15
10.45.8 : 0
//Scala Program
//Convert string to number
class MyString
{
//This function is returning a valid number of given string
//When string is not valid number that is return 0 value
def str_to_number(text: String): Double = {
//Assuming that given text result not exceed the size of int (number)
var size: Int = text.length();
if (size == 0)
{
return 0;
}
var number: Double = 0;
var is_nagative: Int = 0;
var result: Double = 0.0;
//This are used when floating point numbers are exist
var fraction: Int = 0;
if (size > 0 && text(0) == '-')
{
//When number is nagative
is_nagative = 1;
}
var i: Int = is_nagative;
while (i < size)
{
if (fraction == 0 && text(i) == '.')
{
//Floating point numbers are exist
fraction = 1;
}
else if (text(i) >= '0' && text(i) <= '9')
{
//When digit is exist
number = (number * 10) + (text(i) - '0');
if (fraction != 0)
{
//When Fraction part exist
fraction = fraction * 10;
}
}
else
{
//When text is not number
return 0;
}
i += 1;
}
if (fraction != 0)
{
result = number / fraction;
}
else
{
result = number;
}
if (is_nagative == 1)
{
result = -result;
}
return result;
}
}
object Main
{
def main(args: Array[String]): Unit = {
var obj: MyString = new MyString();
//Some test cases
var text: String = "1234";
var number: Double = obj.str_to_number(text);
print(text + " : " + number + "\n");
//Test when number is nagative or not
text = "-12345";
number = obj.str_to_number(text);
print(text + " : " + number + "\n");
text = "--1234";
number = obj.str_to_number(text);
print(text + " : " + number + "\n");
text = "-12a345";
number = obj.str_to_number(text);
print(text + " : " + number + "\n");
text = "15.50";
number = obj.str_to_number(text);
print(text + " : " + number + "\n");
text = "15.58";
number = obj.str_to_number(text);
print(text + " : " + number + "\n");
text = "-15.58";
number = obj.str_to_number(text);
print(text + " : " + number + "\n");
text = "10.45.8";
number = obj.str_to_number(text);
print(text + " : " + number + "\n");
}
}
Output
1234 : 1234.0
-12345 : -12345.0
--1234 : 0.0
-12a345 : 0.0
15.50 : 15.5
15.58 : 15.58
-15.58 : -15.58
10.45.8 : 0.0
//Swift Program
//Convert string to number
class MyString
{
//This function is returning a valid number of given string
//When string is not valid number that is return 0 value
func str_to_number(_ str_data: String) -> Double
{
let text = Array(str_data);
//Assuming that given text result not exceed the size of int (number)
let size: Int = str_data.count;
if (size == 0)
{
return 0;
}
var number: Double = 0;
var is_nagative: Int = 0;
var result: Double = 0.0;
let zero = Int(UnicodeScalar("0")!.value);
let nine = Int(UnicodeScalar("9")!.value);
//This are used when floating point numbers are exist
var fraction: Int = 0;
if (size > 0 && text[0] == "-")
{
//When number is nagative
is_nagative = 1;
}
var i: Int = is_nagative;
while (i < size)
{
let data = Int(UnicodeScalar(String(text[i]))!.value);
if (fraction == 0 && text[i] == ".")
{
//Floating point numbers are exist
fraction = 1;
}
else if (data >= zero && data <= nine)
{
//When digit is exist
number = (number * 10) + Double(data - zero);
if (fraction != 0)
{
//When Fraction part exist
fraction = fraction * 10;
}
}
else
{
//When text is not number
return 0;
}
i += 1;
}
if (fraction != 0)
{
result = number / Double(fraction);
}
else
{
result = number;
}
if (is_nagative == 1)
{
result = -result;
}
return result;
}
}
func main()
{
let obj: MyString = MyString();
//Some test cases
var text: String = "1234";
var number: Double = obj.str_to_number(text);
print(text ," : ", number ,"\n", terminator: "");
//Test when number is nagative or not
text = "-12345";
number = obj.str_to_number(text);
print(text ," : ", number ,"\n", terminator: "");
text = "--1234";
number = obj.str_to_number(text);
print(text ," : ", number ,"\n", terminator: "");
text = "-12a345";
number = obj.str_to_number(text);
print(text ," : ", number ,"\n", terminator: "");
text = "15.50";
number = obj.str_to_number(text);
print(text ," : ", number ,"\n", terminator: "");
text = "15.58";
number = obj.str_to_number(text);
print(text ," : ", number ,"\n", terminator: "");
text = "-15.58";
number = obj.str_to_number(text);
print(text ," : ", number ,"\n", terminator: "");
text = "10.45.8";
number = obj.str_to_number(text);
print(text ," : ", number ,"\n", terminator: "");
}
main();
Output
1234 : 1234.0
-12345 : -12345.0
--1234 : 0.0
-12a345 : 0.0
15.50 : 15.5
15.58 : 15.58
-15.58 : -15.58
10.45.8 : 0.0
Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.
New Comment