【问题标题】:Convert meters to feet to inches c++?将米转换为英尺到英寸c ++?
【发布时间】:2013-11-12 05:45:28
【问题描述】:

我不知道如何得到英寸,它只适用于脚而不是英寸

这是应该将米转换为英尺到英寸的代码部分

输出的一个例子应该是:

输入米数作为双精度数:15

15.00 米的值是 49 英尺和 2.55 英寸。

//

//METERS_PER_FOOT=0.3048

//INCHES_PER_FOOT=12.0

//makes conversion from metric to English units

void convert(int& feet, double& inches, double meters)

{

  feet=meters/METERS_PER_FOOT;

  inches=feet/INCHES_PER_FOOT; //this line should give me inches

}

【问题讨论】:

  • 请出示您的 cout 声明。我的猜测是您应该在 cout 语句中从英寸中删除“”。另外,我认为你应该乘以 INCHES_PER_FOOT,而不是除以。
  • 你可以直接转换。 temp = 39.37007874016 * 米 转换为英寸后,使用 mod 获取英寸,然后使用 temp - 英寸获取英尺。
  • 另外,为什么METERS_PER_FOOT和INCHES_PER_FOOT的定义被注释掉了?在你的计算中,其中之一不是倒过来的吗?您使用meters / METERS_PER_FOOT 从米到英尺,然后使用feet / INCHES_PER_FOOT 从英尺到英寸。第二个不应该是FEET_PER_INCH吗? (或者乘以INCHES_PER_FOOT而不是除以?)
  • 这个问题似乎跑题了,因为它是关于基础数学的

标签: c++


【解决方案1】:

你需要乘而不是除。

有12英寸/英尺。将英尺除以英寸/英尺得到英尺^2/英寸,这有点奇怪。

你的代码应该读

inches=feet*INCHES_PER_FOOT;

请注意,您有(米)/(米/英尺)但有(英尺)/(英寸/英尺),这就是为什么一个有效而另一个无效的原因。

【讨论】:

    【解决方案2】:

    如果您希望将米转换为英尺,将米转换为英寸,那么 使用

    feet=meters/METER_PER_FOOT;
    inches=feet*INCHES_PER_FOOT; this will convert feet to inches
    

    如果您只想用英尺和英寸来表示米 使用

    feet=floor(meters/METER_PER_FOOT);
    inches=floor(meters/INCHES_PER_METER)-feet*INCHES_PER_FOOT;
    cout << meters << "Meters=" << feet<<"feet"<<inches<<"inches";
    

    【讨论】:

      【解决方案3】:

      对于未来,尽量让它们都具有相同的类型,因为在依赖自动类型转换时可能会失去一些价值。

      【讨论】:

        猜你喜欢
        • 2016-02-02
        • 1970-01-01
        • 2020-07-17
        • 1970-01-01
        • 2023-01-18
        • 2016-04-14
        • 1970-01-01
        • 2011-09-03
        • 1970-01-01
        相关资源
        最近更新 更多