
Take user input of a number in range 0-999. Convert the decimal number to Roman equivalent and display the result..

import java.util.*;
class Roman {
int number;
String romanNumber;
Roman(int dec, String rom) {
this.number = dec;
this.romanNumber = rom;
}
}
public class DecimalToRoman {
public static void main(String[] args) {
DecimalToRoman dec=new DecimalToRoman();
System.out.println("Enter Decimal Number");
Scanner input=new Scanner(System.in);
double num = input.nextDouble();
int i = (int)num;
String roman = dec.convertIntegerToRoman(i);
System.out.println("Roman Number is: "+roman);
}
final static Roman[] table = {
new Roman(1000, "M"),
new Roman( 900, "CM"),
new Roman( 500, "D"),
new Roman( 400, "CD"),
new Roman( 100, "C"),
new Roman( 90, "XC"),
new Roman( 50, "L"),
new Roman( 40, "XL"),
new Roman( 10, "X"),
new Roman( 9, "IX"),
new Roman( 5, "V"),
new Roman( 4, "IV"),
new Roman( 1, "I")
};
public static String convertIntegerToRoman(int n) {
if (n >= 5000 || n < 1) {
System.out.println("Numbers must be in range 1-999");
}
StringBuffer buffer = new StringBuffer(10);
for (Roman rvalue : table) {
while (n >= rvalue.number) {
n -= rvalue.number;
buffer.append(rvalue.romanNumber);
}
}
return buffer.toString();
}
}
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.