验证包含2个小数位的double的简单方法是什么?

use*_*567 0 java

我正在寻找一个Java示例来检查用户输入的双金额是否包含2位小数,例如输入的99.99将返回有效,输入的99.9或99.999将返回无效.

Har*_*ami 6

Double d = 234.12413;
String[] splitter = d.toString().split("\\.");
splitter[0].length();   // Before Decimal Count
int decimalLength = splitter[1].length();  // After Decimal Count

if (decimalLength == 2)
   // valid
else
   // invalid
Run Code Online (Sandbox Code Playgroud)

对于亨利的问题

double d1 = 0.50;
double d2 = d1%1;
DecimalFormat df = new DecimalFormat("#.00");

int decimalLength = (df.format(d2).length()-1);

if (decimalLength == 2)
   //valid
else
   // invalid
Run Code Online (Sandbox Code Playgroud)

注意:df.format(d2)返回.50,所以长度3

  • 嗯,输入的数字"0.50"怎么样? (2认同)