美文网首页
每日一练96——Java英里每加仑到公里每升(8kyu)

每日一练96——Java英里每加仑到公里每升(8kyu)

作者: 砾桫_Yvan | 来源:发表于2018-09-13 14:14 被阅读0次

    题目

    有时,我希望能够迅速将英里每加仑的里程转换为公里每升。

    根据每英制加仑的英里数(输入)创建一个显示每升的公里数(输出)的应用程序。

    确保将结果四舍五入为小数点后两位。如果答案以0结尾,则应该在没有0的情况下四舍五入。因此,我们应该得到5.5而不是5.50。

    与此kata相关的一些有用的关联:1 加仑 = 4.54609188升,1英里= 1.609344公里。

    测试用例:

    import static org.junit.Assert.assertEquals;
    import org.junit.Test;
    
    public class TestConverter {
    
      @Test
      public void test1() {
        assertEquals(3.54f, Converter.mpgToKPM(10), 0.001f);
      }
      
      @Test
      public void test2() {
        assertEquals(7.08f, Converter.mpgToKPM(20), 0.001f);
      }
      
      @Test
      public void test3() {
        assertEquals(10.62f, Converter.mpgToKPM(30), 0.001f);
      }
    }
    

    解题

    My

    import java.text.DecimalFormat;
    public class Converter {
      public static float mpgToKPM(final float mpg) {
        return Float.parseFloat(new DecimalFormat("#.00").format(1.609344f / 4.54609188f * mpg));
      }
    }
    

    Other

    import java.math.BigDecimal;
    
    public class Converter {
    
        public static float mpgToKPM(final float mpg) {
            return BigDecimal.valueOf(mpg * 1.609344f / 4.54609188f).setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
        }
    }
    

    后记

    我的在精度上还是会有差别,看随机的测试用例,也可以发现其用的方法。

    随机测试用例

    相关文章

      网友评论

          本文标题:每日一练96——Java英里每加仑到公里每升(8kyu)

          本文链接:https://www.haomeiwen.com/subject/brewgftx.html