📄 doublerange.java
字号:
/*====================================================================*\DoubleRange.javaDouble range class.------------------------------------------------------------------------This file is part of FuncPlotter, a combined Java application and appletfor plotting explicit functions in one variable.Copyright 2005-2007 Andy Morgan-Richards.FuncPlotter is free software: you can redistribute it and/or modify itunder the terms of the GNU General Public License as published by theFree Software Foundation, either version 3 of the License, or (at youroption) any later version.This program is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public License alongwith this program. If not, see <http://www.gnu.org/licenses/>.\*====================================================================*/// PACKAGEpackage util;//----------------------------------------------------------------------// IMPORTSimport java.text.NumberFormat;//----------------------------------------------------------------------// DOUBLE RANGE CLASSpublic class DoubleRange implements Cloneable{////////////////////////////////////////////////////////////////////////// Constructors//////////////////////////////////////////////////////////////////////// public DoubleRange( ) { } //------------------------------------------------------------------ public DoubleRange( double lowerLimit, double upperLimit ) { this.lowerLimit = lowerLimit; this.upperLimit = upperLimit; } //------------------------------------------------------------------ public DoubleRange( DoubleRange range ) { lowerLimit = range.lowerLimit; upperLimit = range.upperLimit; } //------------------------------------------------------------------ public DoubleRange( String str ) throws IllegalArgumentException, NumberFormatException { String[] strs = str.split( " *, *", -1 ); if ( strs.length != 2 ) throw new IllegalArgumentException( ); lowerLimit = Double.parseDouble( strs[0] ); upperLimit = Double.parseDouble( strs[1] ); } //------------------------------------------------------------------////////////////////////////////////////////////////////////////////////// Instance methods : overriding methods//////////////////////////////////////////////////////////////////////// public Object clone( ) { Object range = null; try { range = super.clone( ); } catch ( CloneNotSupportedException e ) { e.printStackTrace( ); } return range; } //------------------------------------------------------------------ public boolean equals( Object obj ) { if ( obj instanceof DoubleRange ) { DoubleRange range = (DoubleRange)obj; return ( (lowerLimit == range.lowerLimit) && (upperLimit == range.upperLimit) ); } return false; } //------------------------------------------------------------------ public int hashCode( ) { long bits = Double.doubleToLongBits( lowerLimit ); bits ^= Double.doubleToLongBits( upperLimit ) * 31; return ( (int)bits ^ (int)(bits >> 32) ); } //------------------------------------------------------------------ public String toString( ) { return new String( lowerLimit + ", " + upperLimit ); } //------------------------------------------------------------------////////////////////////////////////////////////////////////////////////// Instance methods//////////////////////////////////////////////////////////////////////// public String toString( NumberFormat format ) { return new String( format.format( lowerLimit ) + ", " + format.format( upperLimit ) ); } //------------------------------------------------------------------ public double getInterval( ) { return ( upperLimit - lowerLimit ); } //------------------------------------------------------------------ public double getValue( double fraction ) { return ( lowerLimit + (upperLimit - lowerLimit) * fraction ); } //------------------------------------------------------------------ public boolean contains( double value ) { return ( (value >= lowerLimit) && (value <= upperLimit) ); } //------------------------------------------------------------------ public double nearestValueWithin( double value ) { return ( Math.min( Math.max( lowerLimit, value ), upperLimit ) ); } //------------------------------------------------------------------////////////////////////////////////////////////////////////////////////// Instance variables//////////////////////////////////////////////////////////////////////// public double lowerLimit; public double upperLimit;}//----------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -