<%@ page import="java.text.NumberFormat" %>
<%
String amountString = request.getParameter ( "amount" );
String discountRateString = request.getParameter ( "discountRate" );
String taxRateString = request.getParameter ( "taxRate" );
if ( amountString != null && ! amountString.matches ( "^[0-9]+$" ) )
{
amountString = amountString.replaceAll ( "[^\\d.]", "" );
}
if ( discountRateString != null && ! discountRateString.matches ( "^[0-9]+$" ) )
{
discountRateString = discountRateString.replaceAll ( "[^\\d.]", "" );
}
if ( taxRateString != null && ! taxRateString.matches ( "^[0-9]+$" ) )
{
taxRateString = taxRateString.replaceAll ( "[^\\d.]", "" );
}
double amount = 0.0;
double discountRate = 0.0;
double taxRate = 0.0;
try
{
if ( amountString == null || amountString == "" )
{
amountString = "";
}
else
{
amount = Double.valueOf ( amountString ).doubleValue();
}
if ( discountRateString == null || discountRateString == "" )
{
discountRateString = "";
}
else
{
discountRate = Double.valueOf ( discountRateString ).doubleValue();
}
if ( taxRateString == null || taxRateString == "" )
{
taxRateString = "";
}
else
{
taxRate = Double.valueOf ( taxRateString ).doubleValue();
}
}
catch ( NumberFormatException ex )
{
amountString = "";
discountRateString = "";
taxRateString = "";
%>
That was naughty. Please use numbers and fill in all fields.
<%
}
double discount = amount * discountRate;
double total = amount - discount;
double tax = total * taxRate;
double taxedTotal = tax + total;
NumberFormat numberFormat = NumberFormat.getCurrencyInstance();
// let's print out what example this is
String submitString = request.getParameter ( "submit" );
%>
Subtotal: <%= numberFormat.format(amount) %>
Discount: <%= numberFormat.format(discount) %>
Total : <%= numberFormat.format(total) %>
Tax : <%= numberFormat.format(tax) %>
Tax+Total: <%= numberFormat.format(taxedTotal) %>
|