In unserer Anwendung Skalierung Problem, müssen wir, ob die angegebene Zahl in Bereich prüfen ist oder nicht und dafür haben wir unten Code verwenden -in BigDecimal (Java) für Exponentialnotation
boolean isValidRangeNumber(Double no,int precision, int scale){
BigDecimal bigDecimal = new BigDecimal(no.toString());
int intPartLength = precision - scale;
int size = (bigDecimal.longValue() + "").toString().length();
if(bigDecimal.precision() <= precision && bigDecimal.scale() <= scale && size <= intPartLength)
return true;
return false;
}
Aber wenn wir rufen isValidRangeNumber(0.0000009, 10,7)
als sein Versagen als bigDecimal.scale()
gibt 8, die maximal 7 sein kann, während es eine gültige Nummer ist. Bitte schlage vor, was mit dieser BigDecimal-Nutzung nicht stimmt.
erklären kann, was die Validierung tun soll? Es ist schwer, korrektes Verhalten von fehlerhaftem Code abzuleiten. – Henry
überprüft, ob die eingegebene Zahl Ziffern vor und nach dem Komma benötigt. –