// This class computes standard R and C values import java.lang.Math; import java.awt.*; public class StandardValue extends java.applet.Applet { double n = 96.0; // 1% values TextField inputdata; private static double npercent (double v, double n) { return(java.lang.Math.round(n * log10(v))); } private static double o (double v, double n) { return(java.lang.Math.pow(10.0, npercent(v, n)/n)); } private static double ppercent(double v, double n) { return(java.lang.Math.floor(log10(o(v, n)))-2); } private static double r (double v, double n) { return(java.lang.Math.pow(10.0, ppercent(v, n))* java.lang.Math.round (o(v, n)/java.lang.Math.pow(10.0, ppercent(v, n)))); } // log10 (x) returns the common (base 10) log of x private static double log10 (double x) { // java.lang.Math.log returns the natural (base e) log of x return (0.4342944819 * java.lang.Math.log(x)); } public void init() { setBackground(Color.pink); // Label our Box add(new Label("Standard R, C Value Calculator", Label.CENTER)); // Set the TextField background to white setBackground(Color.white); // set up a text field to get input inputdata = new TextField("Input value",12); add(inputdata); } public void paint(Graphics g) { int height, width; // dimensions of my window int x, y; // center of window Rectangle myWindow; myWindow = g.getClipRect(); width = myWindow.width; height = myWindow.height; // Set background color g.setColor(Color.pink); // fill in my rectangle g.fill3DRect(1,1, width-2, height-2, true); } public boolean action(Event evt, Object arg) { if(evt.target instanceof TextField) { HandleInput(evt.target); return true; } else { return false; } } public void HandleInput(Object myEvent) { try { Double dobj = new Double(inputdata.getText()); double Value = dobj.doubleValue(); double x = r(Value, n); inputdata.setText(dobj.toString(x)); } catch (NumberFormatException e) { inputdata.setText("ERROR"); } } }