数値をメソッドに投げて計算させてStringにして値を返すという処理になります。
エミュレータではちゃんと値が返ってきて
android実機は端末によって値が返ってきたり
返ってこなかったり(返ってこない場合は素通り)
動く端末も存在するので、何が間違っているのかわかりません。
なお、業務のため、USBが差せず、デバッグモードでの実行もできません。
力をお貸しください。
よろしくお願い致します。
java
1 public String setBytes(long byteData) { 2 3 String setByte = ""; 4 double gbData = 0; 5 double mbData = 0; 6 double kbData = 0; 7 if (byteData >= 1073741824) { 8 gbData = (double) (byteData / 1073741824); 9 double afterGb = new BigDecimal(String.valueOf(gbData)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 10 setByte = String.valueOf(afterGb) + "GB"; 11 } 12 if (1048576 <= byteData && byteData < 1073741824) { 13 mbData = (double) (byteData / 1048576); 14 double afterMb = new BigDecimal(String.valueOf(mbData)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 15 setByte = String.valueOf(afterMb) + "MB"; 16 } 17 if (1024 <= byteData && byteData < 1048576) { 18 kbData = (double) (byteData / 1024); 19 double afterKb = new BigDecimal(String.valueOf(kbData)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 20 setByte = String.valueOf(afterKb) + "KB"; 21 } 22 if (byteData < 1024) { 23 setByte = String.valueOf(byteData) + "Bytes"; 24 } 25 26 return setByte; 27 }
ちなみに中の処理を全部消してreturnの型をlongにしても値は返ってくるし
中の処理を
java
1setByte = String.valueOf(byteData) + "Bytes";
だけにしても値は返ってくきます。
なので、投げる値が間違ってるということはないと思います。