题目
每个数字都应格式化为四舍五入到小数点后两位。您无需检查输入是否为有效数字,因为测试中仅使用有效数字。
Example:
5.5589 is rounded 5.56
3.3424 is rounded 3.34
测试用例:
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import org.junit.runners.JUnit4;
public class NumbersTest
{
@Test
public void Test_01()
{
assertEquals(4.66, Numbers.TwoDecimalPlaces(4.659725356), 0.00);
}
@Test
public void Test_02()
{
assertEquals(173735326.38, Numbers.TwoDecimalPlaces(173735326.3783732637948948), 0.00);
}
}
解题
My:
public class Numbers
{
public static double TwoDecimalPlaces(double number)
{
return (double)Math.round(number*100)/100;
}
}
Other:
public class Numbers
{
public static double TwoDecimalPlaces(double number)
{
//Write your code here
return (Math.round(number*100))/100.0;
}
}
利用库函数:
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Numbers
{
public static double TwoDecimalPlaces(double number)
{
return new BigDecimal(String.valueOf(number)).setScale(2, RoundingMode.HALF_UP).doubleValue();
}
}
import java.text.*;
public class Numbers
{
public static double TwoDecimalPlaces(double number)
{
return Double.parseDouble(String.format("%.2f", number));
}
}
后记
原来不需要使用double来强制转换,因为Math.round()返回值是double类型的。