xcx16 2022-01-30 14:18 采纳率: 76.9%
浏览 24
已结题

c语言类型问题,简单乘除

int x;
为什么x/pow(10,n)pow(10,n)和a=x/pow(10,n),b=apow(10,n)值不一样,为什么前者会出现值还是x,不是x除以一个数只得出整数吗,在乘同样得数不该和原来的值不一样吗

  • 写回答

1条回答 默认 最新

  • 於黾 2022-01-30 15:45
    关注

    说明你对数据类型和运算的概念掌握的不牢固
    并不是只要涉及到int就必须是整数,要看表达式的类型而不是参数类型
    两个数做运算,会自动隐式转换成类型大的那一个,比如int+double,那么统一先转换成double再加,结果也是double
    如果两个数都是int,那么结果也是int,int型当然没有小数点
    -=-=-=
    再看你的代码,pow的返回值类型是double,int除以double,结果是double,所以根本不存在你说的问题
    当然,先除后乘还是先乘后除还是会有区别的,先乘如果数太大,可能会溢出;先除如果得数太小,可能丢精度

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 2月12日
  • 已采纳回答 2月4日
  • 创建了问题 1月30日

悬赏问题

  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 CMFCPropertyPage
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀