问一个java变量转换问题

logohoo 2018-09-26 10:58:24
public static int modelHeight=362;

double mm=(double) modelHeight;

int m=(int)(mm*(double)0.75);
m=(int)((double)modelHeight*(double)0.75);
无论怎么整 m都等于0,神经病,不知道问题在哪里?
...全文
794 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_43402372 2018-10-13
  • 打赏
  • 举报
回复
谢谢汾西县 好地方
_望 2018-10-12
  • 打赏
  • 举报
回复
java 浮点类型需要加f 如 int i = 15*1.2f; 15:会自动提升为float 类型,这个公式需要类型强转 float f = 15*1.3f; double d = 13*1.3d;
Enics_ 2018-10-11
  • 打赏
  • 举报
回复
logohoo 2018-10-10
  • 打赏
  • 举报
回复
奇怪了,android studio真机调试就是有问题啊。
大王来寻春 2018-09-30
  • 打赏
  • 举报
回复
亲测,完全没毛病
jklwan 2018-09-30
  • 打赏
  • 举报
回复
0.75默认double类型,与整数相乘结果还是double,不用你强转,至于你转为int结果是0肯定是其他问题。 直接写个Test方法测试下
public class Test {
    public static int modelHeight = 362;

    public static void main(String[] args) {
        double d = modelHeight * 0.75;
        System.out.println("d:" + d);
        int n = (int) d;
        System.out.println("n:" + n);
    }
}
logohoo 2018-09-29
  • 打赏
  • 举报
回复
没有修改的,modelHeight值一直都是不变的,我问题是在转类型上问题啊。
就是int n=(int)(modelHeight*0.75); 这样都是0,这是modelHeigh的值输出是362,只是转换的问题啊。本来modelHeigh是整形,如果这个当整形运算当然是0拉,就是运算时候把0.75当成0了。modelHeigh的值还是362啊?就是n=(int)((double)modelHeight*0.75); 或n=(int)(modelHeight*(double)0.75); 出来的n还是0啊。
logohoo 2018-09-27
  • 打赏
  • 举报
回复
搞了几天都没有搞明白,知道的麻烦说下。谢谢。
filterFace调用时在线程里头的,是不是有问题啊?
2018now 2018-09-27
  • 打赏
  • 举报
回复
单看这些 m=271没问题啊,你是不是其他地方对modelHeight进行过修改
logohoo 2018-09-26
  • 打赏
  • 举报
回复
public class FaceAAA{
public static int modelHeight=362;

public static int[] filterFace(Bitmap srcBitmap,Point leftEye,Point rightEye,Point mouth)
{
int m=(int)(362*0.75);
int n=(int)(modelHeight*0.75);

}
}
打印:m=271
n=0
在android studio运行的。
键盘舞者113 2018-09-26
  • 打赏
  • 举报
回复
?我打印出来的是正常的啊,你用log打印一下就知道了
09-26 11:14:00.825 12390-12390/bitpai.com.one V/zzwzzw: 362.0
271
271

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧