BLE_WIFI_Scale_Server_Api 服务器与wifi秤交互只需要实现3个接口:设备注册、获取用户、上传记录
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

WeightUnitUtils.java 3.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package com.inet.ailink.receiver.common.utils;
  2. import java.io.IOException;
  3. import java.math.BigDecimal;
  4. public class WeightUnitUtils {
  5. public static void main(String arg[]) throws IOException{
  6. // System.out.println("100kg="+getKg(100,0,0)+"kg");//100kg
  7. // System.out.println("10kg="+getKg(100,0,1)+"kg");//10kg
  8. // System.out.println("1kg="+getKg(100,0,2)+"kg");//1kg
  9. // System.out.println("100.1kg="+getKg(1001,0,1)+"kg");//1kg
  10. // System.out.println("100.5kg="+getKg(1005,0,1)+"kg");//1kg
  11. // System.out.println("100.6kg="+getKg(1006,0,1)+"kg");//1kg
  12. // System.out.println("100.8kg="+getKg(1008,0,1)+"kg");//1kg
  13. // System.out.println("100.11kg="+getKg(10011,0,2)+"kg");//1kg
  14. // System.out.println("100.55kg="+getKg(10055,0,2)+"kg");//1kg
  15. // System.out.println("100.66kg="+getKg(10066,0,2)+"kg");//1kg
  16. // System.out.println("100.88kg="+getKg(10088,0,2)+"kg");//1kg
  17. // System.out.println("100lb="+getKg(100,6,0)+"kg");//100kg
  18. // System.out.println("10lb="+getKg(100,6,1)+"kg");//10kg
  19. // System.out.println("1lb="+getKg(100,6,2)+"kg");//1kg
  20. // System.out.println("100.1lb="+getKg(1001,6,1)+"kg");//1kg
  21. // System.out.println("100.5lb="+getKg(1005,6,1)+"kg");//1kg
  22. // System.out.println("100.6lb="+getKg(1006,6,1)+"kg");//1kg
  23. // System.out.println("100.8lb="+getKg(1008,6,1)+"kg");//1kg
  24. // System.out.println("100.11lb="+getKg(10011,6,2)+"kg");//1kg
  25. // System.out.println("100.55lb="+getKg(10055,6,2)+"kg");//1kg
  26. // System.out.println("100.66lb="+getKg(10066,6,2)+"kg");//1kg
  27. // System.out.println("100.88lb="+getKg(10088,6,2)+"kg");//1kg
  28. // System.out.println("100st="+getKg(100,4,0)+"kg");//100kg
  29. // System.out.println("10st="+getKg(100,4,1)+"kg");//10kg
  30. // System.out.println("1st="+getKg(100,4,2)+"kg");//1kg
  31. // System.out.println("100.1st="+getKg(1001,4,1)+"kg");//1kg
  32. // System.out.println("100.5st="+getKg(1005,4,1)+"kg");//1kg
  33. // System.out.println("100.6st="+getKg(1006,4,1)+"kg");//1kg
  34. // System.out.println("100.8st="+getKg(1008,4,1)+"kg");//1kg
  35. // System.out.println("100.11st="+getKg(10011,4,2)+"kg");//1kg
  36. // System.out.println("100.55st="+getKg(10055,4,2)+"kg");//1kg
  37. // System.out.println("100.66st="+getKg(10066,4,2)+"kg");//1kg
  38. // System.out.println("100.88st="+getKg(10088,4,2)+"kg");//1kg
  39. }
  40. public static BigDecimal getKg(BigDecimal weight, int weightUnit,int weightPoint){
  41. BigDecimal result = BigDecimal.ZERO;
  42. //小数位转换
  43. if(weightPoint == 0){
  44. result = weight;
  45. }else{
  46. result = weight;
  47. for(int i=0;i<weightPoint;i++){
  48. result = result.divide(new BigDecimal(10));
  49. }
  50. }
  51. //单位转化为千克
  52. switch (weightUnit) {
  53. case 0://千克,不需要转换
  54. break;
  55. case 1://斤->千克
  56. result = result.multiply(new BigDecimal(2));
  57. break;
  58. case 4://st->千克
  59. //st先转成lb,在转成千克
  60. result = result.multiply(new BigDecimal(14.0f));//st->lb
  61. result = result.divide(new BigDecimal(2.2046226f),7, BigDecimal.ROUND_HALF_UP);//lb->kg
  62. break;
  63. case 6://lb->kg
  64. result = result.divide(new BigDecimal(2.2046226f),7, BigDecimal.ROUND_HALF_UP);
  65. break;
  66. default:
  67. break;
  68. }
  69. //保留2位小数
  70. result = result.setScale(2, BigDecimal.ROUND_HALF_UP);
  71. return result;
  72. }
  73. }